0 0

springmvc 注释AOP 无效 ,求解? 20

环境为 springmvc 3.2 AOP 是到service层,写操作日志用。
刚才开始搭框架时,写了个测试SERVICE,也分了service,serviceImpl
当时测试就service方法就传了一个参数,能成功。今天用于正式代码,拦截就完全不起作用了。当然之前那个测试SERVICE还是能成功。
然后把测试SERVICE的入参改为2个参数,也不行了。
我把配置贴上来,大神帮看看。

@Aspect
public class LogInterceptor {

	private static final Log log = LogFactory.getLog(LogInterceptor.class);

	@Autowired
	protected HttpServletRequest request;

	@Autowired
	private OperationLogService operationLogService;

	@Pointcut("within(cn.ccsgroup.ccsframework..service.*Service)")
	public void withService() {
	}

	@Pointcut("execution(public * save*(..))")
	public void saveObject() {
	}

	@Pointcut("execution(public * update*(..))")
	public void updateObject() {
	}

	@Pointcut("execution(public * disable*(..))")
	public void disableObject() {
	}

	@Pointcut("execution(public * enable*(..))")
	public void enableObject() {
	}

	@Pointcut("execution(public * delete*(..))")
	public void deleteObject() {
	}

	@Pointcut("execution(public * import*(..))")
	public void importObject() {
	}

	@Pointcut("execution(public * export*(..))")
	public void exportObject() {
	}

	@Pointcut("execution(public * downLoad*(..))")
	public void downLoadObject() {
	}


	@Pointcut("@within(org.springframework.stereotype.Service)")
	public void ObjectserviceImpl() {
	}

	/**
	 * 
	 * @Title: afterReturning
	 * @Description: TODO(Service的方法执行结束后的AOP)
	 * @param @param jp 切点
	 * @param @throws Throwable    设定文件
	 * @return void    返回类型
	 * @throws
	 */
	@AfterReturning(value = "ObjectserviceImpl() && (saveObject() || updateObject() || disableObject() || enableObject() || deleteObject() || importObject() || exportObject() || downLoadObject())", returning = "retVal")
	public void afterReturning(JoinPoint jp,String retVal ) throws Throwable{
		Boolean result = true; //默认操作成功
		logService(jp,result,retVal,null);
	}

	@AfterThrowing(value = "ObjectserviceImpl() && (saveObject() || updateObject() || disableObject() || enableObject() || deleteObject() || importObject() || exportObject() || downLoadObject())",throwing="excep")	
	public void afterThrowing(JoinPoint jp,Exception excep) throws Throwable{
		Boolean result = false; //异常失败
		logService(jp,result,null,excep);
	}


service
@TypeAnnotation("角色管理")
public interface RoleManagerService {

	@MethodAnnotation("修改角色")
	public int updateRole(Role role);
        @MethodAnnotation("save
角色")

        public int saveRole(Role role, SessionBean sessionBean);


serviceImpl
@Service("roleManagerService")
@Transactional
public class RoleManagerServiceImpl implements RoleManagerService {

	@Resource(name="roleManagerDao")
	private RoleManagerDao roleManagerDao;

	@Override
	public int saveRole(Role role, SessionBean sessionBean) {
		// TODO Auto-generated method stub
		Map<String,Object> map = new HashMap<String,Object>();
		map.put("entity", role);
		map.put("sessionBean", sessionBean);
		return (Integer) roleManagerDao.getSqlMapClientTemplate().insert("Role.insertRole", map);
	}


然后我包路径肯定是没问题的。

问题补充:唉,已经解决。之前我想多了
2014年1月03日 09:35

1个答案 按时间排序 按投票排序

0 0

我也在做一个类似的日志记录功能,aop始终不能切入到指定的service层,环境也和你得类似,求指点怎么解决的,能否把项目示例发一份

2016年5月11日 18:40

相关推荐

Global site tag (gtag.js) - Google Analytics