草庐IT

java - spring项目中AOP最常见的用途是什么

在回顾了AOP模式之后,我对在我的spring项目中使用它的方式和用途感到不知所措。我想用它作为所有金融业务逻辑的审计日志系统。它似乎很容易集成。但我想听听您对此的看法。问题是-我应该考虑哪些其他用途对于这种模式很常见?只要有好处,我不介意重构我当前的逻辑以与AOP一起使用。 最佳答案 最常见的用法是您的应用程序具有横切关注点,即将要在多个类/层中编写的一段逻辑或代码。这可能会根据您的需要而有所不同。一些非常常见的例子可能是:事务管理日志记录异常处理(尤其是当您可能希望有详细的跟踪或有一些从异常中恢复的计划时)安全方面仪器希望对您有

java - Spring AOP 更改围绕建议的方法参数的值

是否可以在使用SpringAOP执行之前根据一些检查来更改方法参数值我的方法publicStringdoSomething(finalStringsomeText,finalbooleandoTask){//SomeContentreturn"SomeText";}建议方法publicObjectinvoke(finalMethodInvocationmethodInvocation)throwsThrowable{StringmethodName=methodInvocation.getMethod().getName();Object[]arguments=methodInvoca

java - 测试 Spring AOP 方面

在编写方面时,我如何测试它们是否匹配以及在我希望它们时调用它们?我在Spring2.5.6中使用@Aspect声明。我不关心功能,这是提取和测试的其他方式。 最佳答案 这里需要测试三种不同的东西:您的切入点是否符合您的预期?您的建议是否引用了正确的切入点?建议是否如您所愿?要测试切入点,您可以定义一些与预期的“真实”目标具有相同包/类型/方法签名的测试类型,然后针对切入点定义测试建议以确保它们匹配(也定义一些类型不应该匹配以确保切入点不太自由)。我通常通过定义建议来对测试目标中的方法进行回调,设置一个标志,然后断言该标志已设置。测试

Spring AOP target() 与 this()

来自SpringDocumentation:代理所在的任何连接点(方法仅在SpringAOP中执行)实现AccountService接口(interface):this(com.xyz.service.AccountService)目标所在的任何连接点(方法仅在SpringAOP中执行)对象实现AccountService接口(interface):target(com.xyz.service.AccountService)我不明白“目标对象”和表达式target(...)是什么意思。target与this有何不同? 最佳答案 th

java - 使用aspectJ的AOP中的Joinpoint VS ProceedingJoinPoint?

谁能告诉我Joinpoint和Proceedingjoinpoint有什么区别?切面类的方法中什么时候使用Joinpoint和Proceedingjoinpoint?我在我的AspectJ类中使用了JoinPoint,例如:@Pointcut("execution(*com.pointel.aop.test1.AopTest.beforeAspect(..))")publicvoidadviceChild(){}@Before("adviceChild()")publicvoidbeforeAdvicing(JoinPointjoinPoint/*,ProceedingJoinPoin

spring - Java Spring AOP : Using CustomizableTraceInterceptor with JavaConfig @EnableAspectJAutoProxy, 不是 XML <aop:advisor>

SpringAOP有一个名为CustomizableTraceInterceptor的方法级跟踪器。.使用Spring的XML配置方法,可以像这样设置这个跟踪器:我想使用Spring的JavaConfig样式设置上述配置(即利用Java注释,尤其是@EnableAspectJAutoProxy用于在JavaConfig中激活AspectJ)。@Configuration@EnableTransactionManagement@EnableJpaRepositories(basePackages={"some.package"})@ComponentScan(basePackages={

java - 在 Spring 使用 AOP 进行日志记录?

我是办公室里的新人。所以没有对我的指导。我需要使用log4j来实现使用AOP的日志记录。我已经在基本springMVC示例中实现了没有AOP的日志记录?AOP中的小样本也使用aspectJ没有记录(只是制作了Sysout)?不知道怎么集成?谁能给我一个创业想法?肯定会感谢好的答案... 最佳答案 Spring让我们可以很容易地使用AOP。这是一个简单的日志记录示例:@AspectpublicclassMyLogger{privateLoggerlog=Logger.getLogger(getClass());@After("exec

spring - 在 Java 7 中使用 AspectJ AOP 时出错

我已将Java更新到版本“1.7.0_09-icedtea”(之前是1.6)并收到以下消息:Instantiationofbeanfailed;nestedexceptionisorg.springframework.beans.BeanInstantiationException:Couldnotinstantiatebeanclass[org.springframework.aop.aspectj.AspectJPointcutAdvisor]:Constructorthrewexception;nestedexceptionisjava.lang.IllegalArgumentE

java - 如何启用 <aop :aspectj-autoproxy> with java-based annotations

我正在尝试设置没有任何XML的SpringAOP。我想启用在一个类中注释为@Configuration.这是在XML文件中定义的方式:我尝试用@Configuration注释我的类(class)和@EnableAspectJAutoProxy但什么也没发生。 最佳答案 您是否在同一个@Configuration类中创建了一个方面bean?这是thedocs建议:@Configuration@EnableAspectJAutoProxypublicclassAppConfig{@BeanpublicFooServicefooServi

spring - 使用 aop 的性能影响

我们已经开始使用springaop来处理我们应用程序的横切方面(目前是安全和缓存)。我的经理担心这项技术的性能影响,尽管他完全了解其好处。我的问题,你有没有遇到过使用aop(特别是springaop)引入的性能问题? 最佳答案 只要您控制您的AOP,我认为它是有效的。无论如何,我们确实遇到了性能问题,因此根据自己的推理,我们并没有完全控制;)这主要是因为编写方面的任何人完全了解所有其他是很重要的>系统中的各个方面以及它们如何相互关联。如果你开始做“聪明”的事情,你可以瞬间超越自己。在一个大型项目中做一些聪明的事情,很多人只能看到系统