spring aop 获取拦截类中的属性的值

最近搭建一个ssh的通用架子时,想做个通用日志的拦截方法,可以利用反射获取拦截类中的属性

不多说,上代码

日志类

public class MyLog {
	public void doBefore(JoinPoint jp) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
	Field f = jp.getTarget().getClass().getDeclaredField("username");//获取属性-->Field
 	f.setAccessible(true);//如果是私有的 先要设置可访问
	String user = (String) f.get(jp.getTarget());//获取值,这个get()方法重点是参数,参数是你要获取的类
	logStr = user + " 进行了" + jp.getTarget().getClass().getName() + " 类的 "+ jp.getSignature().getName()+" 方法开始执行 ";logger.info(logStr);}
	}
}





拦截类

 com.xxx.xxx.controller包下的ServerManagerController.java

 
  

public class ServerManagerController extends BaseAction{
	
	private String username = "";
	@Autowired

	/**
	 * 管理页面  
	 * @return
	 */
	@RequestMapping(value = "/toServerManager")
    public String toServerManager(){ 
		UserLogInfo user = (UserLogInfo)session.getAttribute("userLogInfo");
		this.username = user.getUsername();
        return "/jsp/examine/serverManager";
    }
}


spring-log.xml

  
  
    
    
      
  
       
      
               
               
               
               
         
  
  
  
  
         
 
    
    
  



你可能感兴趣的:(web-spring)