1.1 @Component:组件
- 修饰一个类,将这个类交给Spring来管理
- 该注解有三个衍生注解(功能相似),建议使用
@Controller
:修饰web层的类
@Service
:修饰service层的类
@Repository
:修饰dao层的类
属性注入的注解
- 普通属性
- 对象类型属性
@Autoware
:设置对象类型的属性值,可是按照类型完成属性注入,咱们习惯按照名称完成属性注入,必须让该注解与@Qualified
注解一块儿使用,@Qualified(value="")
传入具体的名称
- @Resource : 完成对象类型的属性注入:按照名称来完成的属性,实际开发中常使用,是Spring实现的一套接口规范
Bean的其余注解
一: 生命周期相关web
- @PostConstruct :初始化方法
- @PreDestroy :销毁方法
二:Bean的做用范围注解 @Scope:做用范围spring
- singleton :默认单例
- prototype :多例
- request :
- session :
- globalsession:
1.2 IOC基于XML配置与注解配置的比较
- 适用场景
- XML: 适用于任何场景,结构清晰维护方便
- 注解:该类不是注解提供的,好比说是源代码的。开发方便
- XML和注解整合开发
Spring的AOP的XML开发
一:底层实现原理session
- 动态代理
- JDK动态代理 :只能对实现接口的类产生代理
- Cglib动态代理(相似于Javassist第三方代理技术):对于没有接口的类产生代理,生成子对象
二: JDK动态代理函数
三: Cglib动态代理单元测试
1.3 Spring的AOP开发(AspectJ的XML的方式)
-
引入aop开发相关的jar包 测试
-
引入Spring的配置文件prototype
- 编写测试类,引入Spring单元测试的jar包
2. 编写切面类
3. 将切面类交给Spring管理
4. 经过AOP的配置来完成对目标类产生代理
1.4 Spring中的通知类型
1.4.1 前置通知: 在目标方法执行前进行操做
- 得到切入点信息,在代理类MyAspectXML中的checkPri的方法中传入以下参数,并运行测试类,获得结果
1.4.2 后置通知: 在目标方法执行以后的操做
1.4.3 环绕通知: 在目标方法执行以前和执行以后进行操做
1.4.4 异常抛出通知: 在程序出现异常的时候,进行的操做
1.4.5 最终通知: 无论代码有没有异常,总会执行
14.6 引介通知:
Spring的切入点表达式
- 基于excution的函数完成的
- 语法
- [访问修饰符] 方法返回值 包名 类名.方法名(参数)
- public void it.spring.demo.CustomerDao.save(..)
- *it.spring.demo.CustomerDao+save(...)