我想要完成的是以下内容:
我有一台具有以下结构的服务器。
bin apis services etc...
我想定义一个包含服务使用方面的API。说:
@Aspect
public class AuthorizationAspect {
@Pointcut("call(* *()) && @annotation(Authorization)")
public void cutAuthorize() { }
@Before("cutAuthorize()")
public void callFromAuthorizeBefore() {
System.out.println("Test");
}
}
然后我定义服务并使用@Authorization注释我想要的方法,并通过该方面获得切入点。
你应该知道的事情:
我的问题是,我该怎么做?如何定义我的maven工件来实现它?
我注意到aspectj插件有一个weaveDependencies部分,但是这也将在服务JAR中包含该API中的所有类(我想要避免的事情)。这是正确的举动吗?
提前致谢,
瑞
答案 0 :(得分:3)
在jcabi-aspects中查看它是如何完成的。您在API中声明/编译方面,然后在示例中使用com.jcabi:jcabi-aspects
时使用此JAR:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>com.jcabi</groupId>
<artifactId>jcabi-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
</plugin>
将方面JAR放在provided
(或runtime
)范围内即可。