SpringAOP需要一些,但不需要其他

SpringAOP需要一些,但不需要其他,spring,spring-aop,Spring,Spring Aop,编辑:看起来像是一个复制品,尽管它没有完全回答: 这是一个控制器。对控制器方法getTestPerson()调用了我的建议,但对person.getAnonymous()或getClassname()没有调用。PersonController和Person pojo类位于同一个包中。为什么会发生这种情况/我如何使它在Person类的方法被调用时触发aop方法 @RestController 公共类个人控制器{ @GetMapping(“/gettestperson”) 公众人物getTestPe

编辑:看起来像是一个复制品,尽管它没有完全回答:

这是一个控制器。对控制器方法getTestPerson()调用了我的建议,但对person.getAnonymous()或getClassname()没有调用。PersonController和Person pojo类位于同一个包中。为什么会发生这种情况/我如何使它在Person类的方法被调用时触发aop方法

@RestController
公共类个人控制器{
@GetMapping(“/gettestperson”)
公众人物getTestPerson(){
Person=新人();
person.getAnonymous();//简单公共方法
person.getClassName();//简单公共方法
返回人;
}
}
@组件
@面貌
公共类布尔方面{
@在(“执行(*com.example.project.person..*.get*())之前)
公共void demoGET7(最终连接点连接点){
System.out.println(“7get*()连接点:+joinpoint”);
}
}

SpringAOP默认情况下使用代理,并且只在Spring管理的bean上工作。您正在创建一个新实例(因此不受Spring管理),因此不会应用AOP。如果你想让它工作,你就必须用加载或编译的时间编织来充分利用AspectJ。修改什么叫“DeNeMean”,你可能还想考虑制作<代码>人>代码>一个Spring管理的代码> bean Bean /代码>或者<代码> @组件< /代码>,并从应用程序上下文中获取实例。当然,该组件不应该是单体。但是我想我也会选择本地的AspectJ解决方案。这取决于几个因素,您会选择哪种方法。