a-s*_*sak 4 java logging aop spring spring-aop
为了使用Spring AOP实现Logging,我遵循了这些简单的步骤.但它似乎无法正常工作.任何帮助都会有用
1)创建了MyLoggingAspect类
import org.aspectj.lang.ProceedingJoinPoint;
public class MyLoggingAspect
{
public MyLoggingAspect() {
super();
System.out.println("Instantiated MyLoggingAspect");
}
public Object log(ProceedingJoinPoint call) throws Throwable
{
System.out.println("from logging aspect: entering method [" + call.toShortString()
+"] with param:"+call.getArgs()[0] );
Object point = call.proceed();
System.out.println("from logging aspect: exiting method [" + call.toShortString()
+ "with return as:" +point);
return point;
}
Run Code Online (Sandbox Code Playgroud)
}
2)创建了一个我想要记录的类(TixServiceImpl)
public class TixServiceImpl implements TixService{
@Override
public void calculateSomething() {
String s = "did some calculation..";
System.out.println(s);
}
@Override
public String getTixName() {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
3)创建了一个spring-aspectj.xml文件
<beans...
<bean id="LoggingAspect" class = "MyLoggingAspect"/>
<aop:config>
<aop:aspect ref="LoggingAspect">
<aop:pointcut id="myCutLogging"
expression="execution(* TixService*.*(..))"/>
<aop:around pointcut-ref="myCutLogging" method="log"/>
</aop:aspect>
</aop:config>
</beans>
Run Code Online (Sandbox Code Playgroud)
4)创建了一个简单的测试客户端(TixClient)
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class TixClient {
public static void main(String[] a){
ApplicationContext context = new FileSystemXmlApplicationContext("conf/spring-aspectj.xml");
TixService tix = new TixServiceImpl();
tix.calculateSomething();
String s = tix.getTixName();
System.out.println("End of the the client invocation!!");
}
}
Run Code Online (Sandbox Code Playgroud)
5)它给了我以下输出
...
Instantiated MyLoggingAspect
did some calculation..
End of the the client invocation!!
Run Code Online (Sandbox Code Playgroud)
Sco*_*ale 15
我只是检查你的代码,但我有一个预感,问题是你没有TixServiceImpl从Spring 获得你的实例,而是你自己手动在你的实例中实例化它TixClient.我认为你TixService需要成为Spring bean,从Spring ApplicationContext中获取,以便Spring有机会在返回的实例上设置方面.
| 归档时间: |
|
| 查看次数: |
7358 次 |
| 最近记录: |