求解:Spring的AOP与IOC的冲突问题
在系统运行正常的情况下
为了添加日志记录功能:采用aop进行在某个切入点加入日志,记录日志需要用到用户的一些信息,因此采用ThreadLocal方案将Struts2的Action对象中的Session属性添加到ThreadLocal当中(session属性在实现SessionAare接口后由Struts注入)
具体作法为:配置切入点在...Action的setSession(Map..)之中,配置切入逻辑.
具体运行时切入逻辑中的调试信息正常打印出来,但是随后在action的处理方法里出现了NullPointerException,说明Service对象没有被注入成功,将AOP功能去掉之后,程序又恢复正常.
很明显是Spring的AOP拦截Struts2的自动注入后影响到了Spring对Service层对象的注入.
不知道是否有哪位大哥遇到过类似的问题,或者知道其中原由,望众位大大们不吝赐教,小弟感激不尽.在线等答案.