필자는 maven Java EE 6 프로젝트를 보유하고 있으며 모든 메소드에 로거 정보를 콘솔에 매개 변수와 끝으로 시작하도록 표시했습니다.Maven 프로젝트에서 Loggin을 위해 AspectJ를 사용하는 방법은 무엇입니까?
몇 가지 방법으로 나는 모든 aspect 메소드의 시작과 끝을 관리하기 위해 aspectJ를 사용하기를 원한다는 것을 잊어 버렸습니다.
저는 Jboss EAP6을 서버로 사용하고 Jboss developper Studio를 IDE로 사용했지만 그물에 약간의 tuturials를 발견했지만 항상 스프링 또는 java aspactJ 프로젝트에 대해 이야기합니다. 내 IDE에 plugin aspectJ를 설치했는데 내 maven 프로젝트가 aspectJ 프로젝트가 아니라는 것을 알려주는 측면을 추가하려고했는데 어떻게 해결할 수 있습니까?
이 내 받는다는의 pom.xml
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.3</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.7.3</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>snapshots</id>
<name>repo1-maven</name>
<url>http://central.maven.org/maven2</url>
</repository>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
이 내 인터페이스 :
public class ClientImpl implements IClient {
private List<ClientBean> ListOfCustomers;
public ClientImpl() {
setListOfCustomers(new ArrayList<ClientBean>());
}
public void addClient(ClientBean clt) {
ListOfCustomers.add(clt);
}
public List<ClientBean> getListOfCustomers() {
return ListOfCustomers;
}
public void setListOfCustomers(List<ClientBean> listOfCustomers) {
ListOfCustomers = listOfCustomers;
}
}
이 내가 내를 만들려고 whitch 클래스입니다 :이 구현은
public interface IClient {
void addClient(ClientBean clt);
}
aspectJ :
@Aspect
public class ClientAspect {
@Pointcut("execution(* *.*(..))")
void anyCallMethod() {}
@Before(value = "anyCallMethod()")
public void befor(JoinPoint joinPoint) {
System.out.println("Before, class: "
+ joinPoint.getSignature().getDeclaringType().getSimpleName()
+ ", method: " + joinPoint.getSignature().getName());
}
@After(value = "anyCallMethod()")
public void after(JoinPoint joinPoint) {
System.out.println("After, class: "
+ joinPoint.getSignature().getDeclaringType().getSimpleName()
+ ", method: " + joinPoint.getSignature().getName());
}
}
는 내가 테스트하는 사람이 클래스가 있고 난 내 프로젝트를 실행할 때 그것은 나를 콘솔에 로그인 NOS 제공
무엇 Aspect Maven 플러그인을 적용하려면 주요 문제를 해결할 수 있습니까? – TinyOS
당신은' ...'섹션에서 구성 버전 및 기타 설정을 참조 AspectJ를-받는다는 - 플러그인'(버전 플러그인없이) 추가 섹션' org.codehaus.mojo 이 필요합니다. 나는 나의 자신의 프로젝트 중 하나의 견본으로 나의 대답을 업데이트 할 것이다. 내 견본은 모든 문제를 전공에서 부전공으로 해결합니다. 나는 이것이 당신을 위해 좋다는 것을 희망한다. 그렇다면 동의하고 upvote 내 대답. –
kriegaex
고맙습니다. 메인 클래스를 실행하면 로그가 생깁니다. 내 다른 전쟁 프로젝트가 작동하지 않기를 바랍니다. 인터페이스 프로젝트, 구현 프로젝트 및 전쟁 프로젝트 – TinyOS