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日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境