上篇内容简单回顾
1、Spring的IOC的注解开发
(1)引入aop的包
引入context约束
配置文件中需要组件扫描:<context:component-scan />
(2)使用注解开发:
@Component :定义Bean
@Controller :WEB层
@Service :Service层
@Repository :DAO层
(3)属性注入:
普通属性 :@Value
对象属性 :@Resource
@Autowired按类型注入属性,@Qulifier按名称注入属性。
2、XML方式和注解方式的比较
XML方式 :适用性更广,结构更加清晰。
注解方式 :适用类是自己定义,开发更方便。
3、XML和注解的整合开发
XML定义类
注解属性注入
4、Spring的AOP的基于AspectJ的XML的开发
(1)什么是AOP?
AOP:面向切面编程,是OOP的扩展和延伸,是用来解决OOP遇到问题。
(2)Spring的AOP底层的实现:
JDK的动态代理
Cglib的动态代理
(3)AOP的相关术语:
连接点:可以被拦截的点
切入点:真正被拦截的点
通知:增强方法
引介:类的增强
目标:被增强的对象
织入:将增强应用到目标的过程
代理:织入增强后产生的对象
切面:切入点和通知的组合
(4)AOP的入门开发
引入jar包
编写目标类并配置
编写切面类并配置
进行aop的配置
<aop:config>
<aop:pointcut expression=”execution(切入点表达式)” id=”pointCut1” />
<aop:aspect >
<aop:before method=”通知方法名” pointcut-ref=”pointCut1”/>
</aop:aspect>
</aop:config>
(5)通知类型
前置通知
后置通知
环绕通知
异常抛出通知
最终通知
(6)切入点表达式写法
Spring中AOP的注解方式的配置
1、创建web项目,引入jar包
2、引入配置文件约束
<?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/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx">
</beans>
3、编写目标类,没有实现接口的类:底层使用Cglib动态代理
package com.pipi.spring.demo1;
public class OrderDao {
public void save() {
System.out.println("save方法执行!");
}
public String delete() {
System.out.println("delete方法执行!");
return "张三";
}
public void find() {
System.out.println("find方法执行!");
}
public void update() {
System.out.