业务中Spring使用
不管是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) {
}
}
最新文章
- 【iOS】开发常用命令
- Yii2.0中文开发向导——Yii2中多表关联查询(join、joinwith)(转)
- linux基本命令(2)-备份压缩命令
- PHP快速抓取快递信息
- vector内存分配
- CentOS-6.5安装配置JDK-7|Tomcat-8
- [九度OJ]1008.最短路径问题
- 设计模式Template Method模式(Template Method)摘录
- java 报表到excel
- c/c++ gdb 调试带参数的程序
- OSGI框架
- 归并排序python实现
- 一起学Hive——使用MSCK命令修复Hive分区
- 字符串String的API
- TQ2440触摸屏
- openstack 部署(Q版)-----环境准备篇
- LeetCode CombinationSum
- Apache HttpComponents 获取页面内容String方式
- [one day one question] Iscroll 5.0 在chrome上无法滑动
- Android程序员学WEB前端(3)-HTML(3)-表单嵌套-Sublime
热门文章
- 【性能诊断】四、单功能场景的性能分析(RedGate,找到同一个客户端的并发请求被串行化问题)
- win7 关于远程桌面登陆的方法,相应服务的启动
- The connection to adb is down, and a severe error has occured.
- JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
- jquery读取csv文件并用json格式输出
- 剑指offer系列55---最小的k个数
- (ORA-12899) 10g数据库导入到11g数据库时报错
- [git]Git常用命令
- final specifier (since C++11)
- JavaScript中回调函数的使用