Spring两大核心技术:IOC和AOP
IOC:控制反转/依赖注入—主要目的:解耦合
创建对象的控制权转交给 Spring容器,从而做到,类和类之间没有耦合
将类中要依赖的对象通过容器的方式注入到类中
AOP:面向切面编程
分为核心业务和横向业务,在不改变核心业务前提下,将横向业务添加到核心业务里
实现步骤:
1 增加横向业务类(实现某一个接口或者是纯类)
2 增加业务方法(可以重写或者一个普通的方法)
3 在配置文件中做配置
注意:切入点表达式(有空格)
public * addUser(com.pb.entity.User):”*”表示匹配所有类型的返回值
public void (com.pb.entity.User):”“表示匹配所有方法名
public void addUser (..):”.. “表示匹配所有参数个数和类型
* com.pb.service..(..):匹配com.pb.service 包下所有类的所有方法
* com.pb.service..*(..):匹配com.pb.service 包及子包下所有类的所有方法
—————IOC注入扩展————-
1 属性注入
2 构造注入
3 p命名空间实现属性注入
—引入p命名空间
直接量(基本数据类型、string) p:属性名=值
引用Bean属性 p:属性名-ref=”bean的id名”
—————-IOC不同类型的参数注入——-
——–AOP 增强————————
1前置增强(实现MethodBeforeAdvice接口)
2后置增强(实现AfterReturningAdvice接口),不出现异常
3异常增强(实现ThrowsAdvice接口)
4环绕增强(实现MethodInterceptor接口)
5后置增强(实现AfterAdvice接口),不管发不发生异常,都做增强处理
————IOC注解———————-
1 @Component - 配置一个bean
2 @Repository –配置Dao
3 @Service–配置业务
4 @Controller–配置控制器
5 @Autowired–自动装配属性或者参数
6 @Qualifier–根据名字匹配
.xml配置文件中需要添加context ,需要配置查找注解类的基础类
————-AOP注解———–
@Before
@AfterReturning
@Around
@After
@AfterThrowing