使用注解实现IOC与AOP的配置
2018-06-27 09:47:18来源:博客园 阅读 ()
之前我们配置IOC(控制反转)都是在xml中配置,现在通过注解配置IOC会减少很多代码
@Repository:用于标注DAO类
@Service:用于标注业务类
@Controller:用于标注控制器类
例:
@Repository("userDao") public class IUserMapperImpl implements IUserMapper { @Resource(name="sqlSessionTemplate") private SqlSessionTemplate s; @Override public List<SMBMS_USER> QueryAll() { return s.getMapper(IUserMapper.class).QueryAll(); } }
这是DAO中的一个实现类,我们使用@Repository("别名")如果不写,默认是类名,首字母小写,将我们的IUserMapperImpl类注入到bean中
同样当类的属性需要引用Bean时,通过@Resource(name=“bean中的id”)来实现引用
在业务逻辑层我们需要引用IUserMapperImpl时:
@Service("userService") public class IUserServiceImpl implements IUserService { @Resource(name="userDao") private IUserMapperImpl u; @Override public List<SMBMS_USER> QueryAll() { return u.QueryAll(); } }
通过@Service(“别名”)来讲业务逻辑层的类注入到bean,我们业务逻辑层引用IUserMapperImpl时通过@Resources(“bean的id”)来引用
当然xml还是需要配置的:
<context:component-scan base-package="cn.bdqn.*" />
在配置文件中加入这一行代码就行了,表示扫描注解标注的类 属性:base-package:表示扫描的范围
2.通过注解实现AOP配置,之前我们配置增强时除了编写增强类,还要在xml配置文件里通过<aop:config>等标签进行配置
当用注解来实现是就简单多了
//通过这两个标签进行注入
@Aspect @Component("advice")
public class ServiceAdvice { private Logger log=Logger.getLogger(ServiceAdvice.class); //定义切点 @Pointcut("execution(* cn.bdqn.service..*.*(..))") public void p1(){ } //前置增强 value后跟上切点名 @Before(value="p1()") public void before(JoinPoint j) { String methodName=j.getSignature().getName(); String className=j.getTarget().getClass().getName(); log.info(className+"===="+methodName); } //后置增强 @AfterReturning(pointcut="p1()") public void afterreturning(JoinPoint j){ String methodName=j.getSignature().getName(); String className=j.getTarget().getClass().getName(); log.info(className+"===="+methodName); } }
编写完增强类后再配置文件上加上:
<aop:aspectj-autoproxy/>表示启用对@Aspectj的支持
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- DES/3DES/AES 三种对称加密算法实现 2020-06-11
- Java--注解 2020-06-11
- SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后 2020-06-10
- Spring Boot 实现定时任务的 4 种方式 2020-06-10
- JSP+SSH+Mysql+DBCP实现的租车系统 2020-06-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash