Tag: aspectj

从ProceedingJoinPoint获取java.lang.reflect.Method?

问题是简短的:有没有办法从apsectj ProceedingJoinPoint获取Method对象? 目前我在做 Class[] parameterTypes = new Class[joinPoint.getArgs().length]; Object[] args = joinPoint.getArgs(); for(int i=0; i<args.length; i++) { if(args[i] != null) { parameterTypes[i] = args[i].getClass(); } else { parameterTypes[i] = null; } } String methodName = joinPoint.getSignature().getName(); Method method = joinPoint.getSignature() .getDeclaringType().getMethod(methodName, parameterTypes); 但我不认为这是要走的路

Spring AOP:JoinPoint和PointCut有什么区别?

我正在学习面向方面的编程概念和Spring AOP。 我不明白一个切入点和一个连接点的区别 – 他们两个对我来说似乎都是一样的。 切入点是你应用你的build议的地方,一个连接点也是我们可以应用我们的build议的地方,那么有什么区别? 一个切入点的例子可以是: @Pointcut("execution(* * getName()") 什么可以是一个Joinpoint的例子?

Spring @Transaction方法通过同一类中的方法调用,不起作用?

我是Spring交易新手。 有些东西我觉得很奇怪,可能我确实理解了这一点。 我想要在方法级别有一个事务处理,并且在同一个类中有一个调用者方法,看起来好像不是这样,它必须从单独的类中调用。 我不明白怎么可能。 如果有人有一个想法如何解决这个问题,我将不胜感激。 我想用同一个类来调用带注释的事务方法。 这里是代码: public class UserService { @Transactional public boolean addUser(String userName, String password) { try { // call DAO layer and adds to database. } catch (Throwable e) { TransactionAspectSupport.currentTransactionStatus() .setRollbackOnly(); } } public boolean addUsers(List<User> users) { for (User user : users) { addUser(user.getUserName, user.getPassword); } } }

对于具有特定注释的类的所有方法,@AspectJ切点

我想用指定的注释(比如@Monitor)来监视所有类的所有公共方法(注意:注解是在类级别的)。 这可能是一个可能的切入点? 注意:我正在使用@AspectJ风格的Spring AOP。

Spring:标准日志方面(拦截器)

我已经find了很多关于如何使用这个或者这个 Spring框架为日志logging创build一个自定义方面的例子,但是没有为这种情况和问题find标准/常见的Spring实现。 有没有Spring的日志方面的标准实现?

使用AspectJ模拟接口和方法的注解inheritance

通常人们会问这样的AspectJ问题,所以我想在稍后可以轻松链接的地方回答。 我有这个标记注释: package de.scrum_master.app; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface Marker {} 现在我注释一个接口和/或像这样的方法: package de.scrum_master.app; @Marker public interface MyInterface { void one(); @Marker void two(); } 这里是一个小驱动程序的应用程序,它也实现了接口: package de.scrum_master.app; public class Application implements MyInterface { @Override public void one() {} @Override public void two() {} public static void main(String[] args) { […]

Spring AOP与AspectJ

我认为Spring AOP最适合用于特定于应用程序的任务,如安全性,日志logging,事务处理等,因为它使用自定义的Java5注释作为框架。 然而,AspectJ似乎是更加友好的devise模式。 任何人都可以突出显示在Spring应用程序中使用Spring AOP与AspectJ的各种利弊吗?

Spring自动assembly使用@Configurable

我玩的想法是使用Spring @Configurable和@Autowire将DAO注入到域对象中,以便它们不需要直接了解持久层。 我试图按照http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html#aop-atconfigurable ,但我的代码似乎没有效果。 基本上,我有: @Configurable public class Artist { @Autowired private ArtistDAO artistDao; public void setArtistDao(ArtistDAO artistDao) { this.artistDao = artistDao; } public void save() { artistDao.save(this); } } 和: public interface ArtistDAO { public void save(Artist artist); } 和 @Component public class ArtistDAOImpl implements ArtistDAO { @Override public void save(Artist artist) { System.out.println("saving"); […]