不管是MVC框架还是DAO框架,在业务场景中能够通用的个人觉得AOP是一个重点,看是不是可以合理使用,其他的框架都是基础框架

==================================

第一个AOP学习,对其类进行增强。

import java.util.Map;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.yyb.service.IAuthService;
import com.yyb.ws.SecurityMannager;

@Component
@Aspect
public class AuthServiceImpl implements IAuthService {

@Autowired
private SecurityMannager securityMannager;

//@After(value="pointRegister(map)",argNames="map")
@After(value="execution(* com.yyb.service.impl.UserServiceImpl.register(..)) && args(map)",argNames="map")
public void authOther(Map<String,String> map) {
System.out.println("AuthServiceImpl.authOther(map=" + map + ") in authOther ");
}

@Pointcut(value="execution(* com.yyb.service.impl.UserServiceImpl.login(..)) && args(cfg,other)",argNames="cfg,other")
public void pointAuth(String cfg,String other){}

//@Before(value="pointAuth(cfg,other)",argNames="cfg,other")
@Before(value="execution(* com.yyb.service.impl.UserServiceImpl.login(..)) && args(cfg,other)",argNames="cfg,other")
@Override
public void auth(String cfg,String other) {
securityMannager.doCheck(cfg + "-" + other );
System.out.println("AuthServiceImpl.auth(cfg=" + cfg + ",other=" + other + ") in auth ");
}

}

import java.util.Map;

import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import com.yyb.service.IUserService;

@Component
public class UserServiceImpl implements IUserService {

@Override
public void login(String name,String pass) {
System.out.println("UserServiceImpl.login() in login......");
}

@Override
public void register(Map<String,String> map) {
System.out.println("UserServiceImpl.register() in register......");
}

@Override
public void findUserByParams(String params) {

}

}

最新文章

  1. 【iOS】开发常用命令
  2. Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
  3. linux基本命令(2)-备份压缩命令
  4. PHP快速抓取快递信息
  5. vector内存分配
  6. CentOS-6.5安装配置JDK-7|Tomcat-8
  7. [九度OJ]1008.最短路径问题
  8. 设计模式Template Method模式(Template Method)摘录
  9. java 报表到excel
  10. c/c++ gdb 调试带参数的程序
  11. OSGI框架
  12. 归并排序python实现
  13. 一起学Hive——使用MSCK命令修复Hive分区
  14. 字符串String的API
  15. TQ2440触摸屏
  16. openstack 部署(Q版)-----环境准备篇
  17. LeetCode CombinationSum
  18. Apache HttpComponents 获取页面内容String方式
  19. [one day one question] Iscroll 5.0 在chrome上无法滑动
  20. Android程序员学WEB前端(3)-HTML(3)-表单嵌套-Sublime

热门文章

  1. 【性能诊断】四、单功能场景的性能分析(RedGate,找到同一个客户端的并发请求被串行化问题)
  2. win7 关于远程桌面登陆的方法,相应服务的启动
  3. The connection to adb is down, and a severe error has occured.
  4. JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
  5. jquery读取csv文件并用json格式输出
  6. 剑指offer系列55---最小的k个数
  7. (ORA-12899) 10g数据库导入到11g数据库时报错
  8. [git]Git常用命令
  9. final specifier (since C++11)
  10. JavaScript中回调函数的使用