Tag: spring aop

为Spring MVC / AOP应用程序实现动态菜单

我希望为我的Spring MVC应用程序实现动态可更改的菜单(在添加带注释的方法或控制器时更新)。 我想要的是引入新的注释( @RequestMenuMapping ),它将转到@Controller bean及其方法(就像@RequestMapping一样)。 Heres是我想要的, User类,生成菜单之类的 Users Index | List | Signup | Login 使用以下代码: @Controller @RequestMapping(“user”) @RequestMenuMapping(“Users”) public class User { @RequestMapping(“”) @RequestMenuMapping(“Index”) public String index(/* no model here – just show almost static page (yet with JSP checks for authority)*/) { return “user/index.tile”; } @RequestMapping(“list”) @RequestMenuMapping(“List”) public String list(Model model) { […]

Spring AOP创建了额外的bean

我正在玩Spring AOP。 这是一个简单的课程 public class CModel extends Car { private double torqueMeasure = 1; public CModel() { System.out.println(” C-Model constructor”); } } Spring配置就是这样的 … 现在可以; 当我添加aop:config并拦截CModel然后Spring调用CModel构造函数两次。 这意味着Spring创建了2个CModel对象,对吧? 如果我删除AOP配置,那么Spring只创建一个CModel对象。 知道为什么会这样吗? 谢谢。

我们可以计算Spring bean初始化时间

我想开发一个弹簧AOPfunction,我们可以在spring bean初始化期间放置一个切入点/内部,以便根据业务需要计算一些统计数据。 我想知道它是否可以使用弹簧AOP模块?

使用spring AOP方面拦截方法?

我正在使用spring AOP来拦截这些方法。 我的spring配置文件中有以下配置。 Aspect类: @Aspect public class MyAspect{ @Around(“execution(public * *(..))”) public Object doAction(ProceedingJoinPoint call) throws Throwable { //somelogic } 以上方法不拦截私有方法? 我该怎么做才能要求方面拦截私人和公共方法?

具有多个注释的方法的AspectJ切入点

使用加载时编织,纯AspectJ。 我们有2个@Count和@Count注释,以及一些带注释的方法。 @Time (name=”myMethod1Time”) @Count (name=”myMethod1Count”) public void myMethod1(){..}; @Time (name=”myMethod2Time”) public void myMethod2(){..}; @Count (name=”myMethod3Count”) public void myMethod3(){..}; 现在我为myMethod1定义了我自己的方面, myMethod1有多个注释: // multiple annotations, not working @Around(“@annotation(time) && @annotation(count)) public Object myAspect(Time time, Count count) {..} 这不起作用。 但是,捕获方法myMethod2可以使用单个注释正常工作: // single annotation, is working @Around(“@annotation(time)) public Object myAnotherAspect(Time time) {..} 我想只捕获签名中存在Time和Count注释的方法,我想使用注释值。 谁知道如何实现这一目标?

如果没有-javaagent vm选项,Spring AspectJ编织如何工作?

我知道Spring避免使用-javaagent vm选项以使其AspectJ加载时间编织工作,而是依赖于类加载器来启动代理。 我认为Java规范规定使用Java代理的唯一方法是通过-javaagent vm选项。 我错了吗? 有人可以指示我使用官方的Java规范/文档来澄清我的审讯吗?

@Around建议究竟如何在Spring AOP中运行?

我正在研究Spring AOP模块,我对AROUND建议的确切运作方式有些怀疑。 阅读官方文档: http : //docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html 我可以阅读有关AROUND ADVICE的内容 : 围绕建议:围绕连接点的建议,例如方法调用。 这是最有力的建议。 around通知可以在方法调用之前和之后执行自定义行为。 它还负责选择是继续加入点还是通过返回自己的返回值或抛出exception来快速建议的方法执行。 这是周围建议的序列图: 因此,根据我的理解,我可以定义一个建议(我的自定义行为),它将在切入点指定的关节点之前和之后执行。 例如,我可以通过这种方式定义AROUND ADVICE : @Around(“execution(@example.Cacheable * rewards.service..*.*(..))”) public Object cache(ProceedingJoinPoint point) throws Throwable { Object value = cacheStore.get(cacheKey(point)); if (value == null) { value = point.proceed(); cacheStore.put(cacheKey(point), value); } return value; } 在调用服务方法之前和之后执行已实现的chaching行为。 这样对吗? 我无法完全理解的是它是如何使用ProceedingJoinPoint点参数的。 根据我的理解,它用于选择执行或不执行特定操作但具体如何工作? 另一个疑问是如何正确使用AOP建议如何回答以下问题: 如果我想尝试捕获exception,我必须使用哪些建议? 我认为在这种情况下,答案是使用After throw advice,因为当匹配的方法执行通过抛出exception退出时,通知会执行。 […]

Spring aop拦截来自同一服务类的调用

我有一个与上面提到的相同的场景 Spring @Transaction方法调用同一个类中的方法,不起作用? 我指的是答案#1,我认为这对我的简单pojo课程有效,但它没有。 在我的情况下,我没有注释@Transaction。 它是一个简单的pojo类。 如果我在上面的post中举例,我希望拦截每个方法adduser以及使用spring aop的addusers。 是否可以拦截从同一服务调用中调用的方法? 我指的是AspectJAwareProxy,它可以解决问题,但不能解决整个问题。 我的意思是我不希望任何东西被添加到我的业务逻辑中。 所以我想避免任何编码,除了定义切入点和定义建议。 是否有可能使用Java和spring aop? 我正在使用CGlib来生成代理。 Spring版本是3.0.5。请。 谢谢,Ajay

私有方法的方法拦截器

这是一个问题:我有方法digest(byte[] data) 。 它应该是私有的,因为我们真的不需要它在课外,但如果我公开它,如果它有帮助,我就不会死。 问题是:我可以以某种方式附加拦截器吗? 问题是它不像getBean(‘MyBean’).digest()那样调用getBean(‘MyBean’).digest() ,它通过getBean(‘MyBean’).sign(data)调用getBean(‘MyBean’).sign(data) ,其中符号是smth像 public byte[] sign(byte[] data){ … b = digest(data); … return signature; } 谢谢。

为什么没有为Jersey控制器检测到我的Aspect(使用自定义注释)?

我想在Jersey控制器上创建一个Aspect来衡量服务执行的时间。 我正在与我的切入点作斗争,因为它没有被检测到,我的方面永远不会被启动。 我尝试过使用大量的切入点,例如: execution(@Monitor * *.*(..)) execution(public * *(..)) change the order of @Aspect and @Component Added a pointcut like this: @Pointcut(“execution(@Monitor * *.*(..))”) public void monitorRequestTargets(){} @Around(“monitorRequestTargets()”) Tried using AOP and CGLIB Also tried changing the order of configuration in context.xml Eclipse检测到我的方法正在建议我的方法,但它不会在运行时执行。 你能否给我一些提示,说明为什么没有创建方面或切入点没有启动? 我的代码如下。 的context.xml 我的MonitorAspect @Component @Aspect public class MonitorAspect { private static […]