Gaichifanla 2023-07-07 15:01 采纳率: 71.4%
浏览 26
已结题

切面执行不出来是怎么回事捏?

为什么这个切面功能执行不出来呢

@Repository//数据层
public class BookDaoImpl implements BookDao {
    public void save(){
        System.out.println("save"+System.currentTimeMillis());
    }
    public void update(){
        System.out.println("update...");
    }
    public void delete(){
        System.out.println("delete...");
    }
}
-------
@Component
@Aspect
public class MyAdvice {
    @Pointcut("execution(void com.example.spring.dao.BookDao.delete())")
    private void pt(){}
    @Before("pt()")
    public void method(){
        System.out.println("method");
        System.out.println(System.currentTimeMillis());
    }
}
-------
@Configuration
@ComponentScan("com.example.spring.dao")
@EnableAspectJAutoProxy
public class SpringConfig {
}
-------
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringConfig.class);
        BookDao bookDao=ctx.getBean(BookDao.class);
        bookDao.delete();
        System.out.println(bookDao.getClass());

结果如图所示,哪里有问题捏

img

  • 写回答

3条回答 默认 最新

  • 回答程序问题 2023-07-07 15:07
    关注

    根据您提供的代码,切面功能没有执行出来的原因可能是您没有将MyAdvice切面类注册到Spring应用程序上下文中。请确保您在SpringConfig配置类中添加了MyAdvice类的扫描,以便Spring能够检测到它并将其应用为切面。
    您的SpringConfig类应该像这样修改:

    @Configuration
    @ComponentScan({"com.example.spring.dao", "com.example.spring.aspect"})
    @EnableAspectJAutoProxy
    public class SpringConfig {
    }
    

    在这个例子中,我假设您的MyAdvice类位于com.example.spring.aspect包中。确保在@ComponentScan注解中包含com.example.spring.aspect包,以便Spring可以扫描并注册切面类。
    另外,请确保您的应用程序中包含以下依赖项:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-aop</artifactId>
    </dependency>
    

    这个依赖项是用于支持Spring AOP的。
    当您运行应用程序时,切面功能应该能够执行,并且在调用bookDao.delete()方法时,应该输出"method"和当前时间。
    如果你觉得有用可以微信给我发五块钱吗,我想喝蜜雪冰城

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月15日
  • 已采纳回答 7月7日
  • 创建了问题 7月7日

悬赏问题

  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码
  • ¥15 AutoDL无法使用docker install吗?
  • ¥15 cups交叉编译后移植到tina sdk的t113,只需要实现usb驱动打印机,打印pdf文件
  • ¥30 关于#wireshark#的问题:需要网络应用流量数据集需要做长度序列的实验,需要与应用产生的会话的数据包的长度,如视频类或者聊天类软件
  • ¥15 根据上述描述表示泥浆密度沿着管路的长度方向在不断变化,如何来表示泥浆密度随管路的变化(标签-matlab|关键词-流计算)