Sping--AOP--XML
IoC: annotation
AOP: XML
XML比annotation用的多.
beans.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd"><context:annotation-config /><context:component-scan base-package="com.bjsxt"/><bean id="logInterceptor" class="com.bjsxt.aop.LogInterceptor"></bean><aop:config> <aop:aspect id="logAspect" ref="logInterceptor"><aop:before method="before" pointcut="execution(public * com.bjsxt.service..*.add(..))" /></aop:aspect></aop:config>
</beans>
LogInterceptor.java:
package com.bjsxt.aop;import org.aspectj.lang.ProceedingJoinPoint;
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.stereotype.Component;//@Aspect
//@Component
public class LogInterceptor {//@Pointcut("execution(public * com.bjsxt.service..*.add(..))")public void myMethod(){};//@Before("myMethod()")public void before() {System.out.println("method before");}//@Around("myMethod()")public void aroundMethod(ProceedingJoinPoint pjp) throws Throwable {System.out.println("method around start");pjp.proceed();System.out.println("method around end");}}
UserServiceTest.java:
package com.bjsxt.service;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bjsxt.model.User;//Dependency Injection
//Inverse of Control
public class UserServiceTest {@Test public void testAdd() throws Exception {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");UserService service = (UserService)ctx.getBean("userService");System.out.println(service.getClass());service.add(new User());ctx.destroy();}
}
UserService.java:
package com.bjsxt.service;
import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;@Component("userService")
public class UserService {private UserDAO userDAO; public void init() {System.out.println("init");}public void add(User user) {userDAO.save(user);}public UserDAO getUserDAO() {return userDAO;} @Resource(name="u")public void setUserDAO( UserDAO userDAO) {this.userDAO = userDAO;} public void destroy() {System.out.println("destroy");}
}
UserDAOImpl.java:
package com.bjsxt.dao.impl;import org.springframework.stereotype.Component;import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;@Component("u")
public class UserDAOImpl implements UserDAO {public void save(User user) {//Hibernate//JDBC//XML//NetWorkSystem.out.println("user saved!");//throw new RuntimeException("exeption!");}}
UserDAO.java:
package com.bjsxt.dao;
import com.bjsxt.model.User;public interface UserDAO {public void save(User user);
}
User.java:
package com.bjsxt.model;public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}
XML方式好? annotation方式好?
XML必须掌握, 因为
---恢复内容结束---
转载于:https://www.cnblogs.com/wujixing/p/5462160.html
Sping--AOP--XML相关推荐
- Spring AOP XML配置及注解配置
一.XML配置切面类 1.日志切面类 //切面类注解配置加两个注解 @Aspect @Component public class LoggerAspect {public Object log(Pr ...
- spring aop xml事务配置
<aop:config> <!-- 通过aop定义事务增强切面--><aop:pointcut id="serviceMethod" expressi ...
- java aop xml配置_spring AOP使用 xml配置
目前有一个业务层的类,我想要监控业务层这个类里面的某些方法.把其中的一些操作记录到一个log表中,但是又不想侵入代码,所以采用切面来完成 一.首先记录log的类: packagecom.aoptest ...
- xml的方式配置AOP:Aspect Oriented Programming
在某些类中, 什么时机, 做什么事情 切入点(point-cut): 在某些类中(Class<?>[] itfc = new Class<?>[] { IStudentSer ...
- Spring AOP(三)--XML方式实现
本文介绍通过XML方式实现Spring AOP,在上一篇中已经介绍了通过注解+java配置的方式,这篇文章主要是看XML中怎么配置,直接上代码了: 一.创建一个连接点 1⃣️定义接口 注意⚠️:可以定 ...
- Spring AOP示例教程 - Aspect,Advice,Pointcut,JoinPoint,Annotations,XML Configuration
Spring AOP示例教程 - Aspect,Advice,Pointcut,JoinPoint,Annotations,XML Configuration Spring Framework是基于两 ...
- aop中joinpoint_Spring AOP示例教程–方面,建议,切入点,JoinPoint,注释,XML配置...
aop中joinpoint Spring Framework is developed on two core concepts – Dependency Injection and Aspect O ...
- SSM3==理解静态代理、动态代理Proxy.newProxyInstance、cglib代理==通过纯XML配置spring AOP,通过纯注解配置spring AOP
静态代理: 为什么要代理?在不改动原代码的基础上,丰富调用某个方法时实现的功能. 比如service类中原本update只会更新,但是通过代理类加上了判断权限和输出时间的功能. 其实这些功能也可以写在 ...
- spring学习总结(十):基于 XML 的配置AOP
基于 XML 的配置声明AOP 除了使用 AspectJ 注解声明切面, Spring 也支持在 Bean 配置文件中声明切面. 这种声明是通过 aop schema 中的 XML 元素完成的. 正常 ...
- 跟着小马哥学系列之 Spring AOP(基于 XML 定义 Advice 源码解析)
学好路更宽,钱多少加班. --小马哥 简介 大家好,我是小马哥成千上万粉丝中的一员!2019年8月有幸在叩丁狼教育举办的猿圈活动中知道有这么一位大咖,从此结下了不解之缘!此系列在多次学习极客时间< ...
最新文章
- Squid如何提高命中率
- 来自顶尖JAVA程序猿的焦虑,拒绝中年危机,唯有一生力学笃行
- 解决AttributeError: XXX instance has no attribute ‘xxx‘的问题(新手必备)
- java ee s2sh复习题_JavaEESSH框架答案试题题目及答案,期末考试题库,章节测验答案...
- Git的sourcetree找不到git
- sql server express 并发数的限制_阿里数据库性能诊断的利器——SQL执行干预
- 搞定Linux Shell文本处理工具,看完这篇集锦就够了(转)
- python高阶函数、map reduce 自己如何去定义_小猿圈python之高阶函数lambda、map和reduce用法...
- 一文快速掌握IPv6基础知识及使用指南
- php 微信时间戳转换工具,微信小程序时间戳转换
- HttpClient 解释
- android 选择 播放器,Android 播放--播放器里面 demo 类的说明与选择
- 网易详述8个月全过程:员工申请仲裁要求支付61万赔偿
- 怎么样域名绑定服务器显示成功,域名备案成功后怎么绑定服务器
- Centos6 yum源设置
- 【腾讯BUG】QQ群贴超大表情BUG,恶意炸群BUG
- nuscenes instance 调研笔记
- Android 天气APP(六)旋转风车显示风力、风向
- Android笔记:Zing二维码扫描解决二维码被拉伸
- ppt版的pdf文件,被加密,知晓密码,想得到去水印后的ppt