一、增强处理类型及特点
① 异常抛出增强
特点:
-
在目标对象方法抛出异常时织入增强处理
-
可灵活拔插的异常处理方案
② 最终增强
特点:
-
无论方法正常运行还是抛出异常,都会在目标方法最后织入增强处理,即:该增强都会得到 执行
-
与Java中finally代码块的作用相似,通常用于释放资源
-
可灵活拔插
③ 环绕增强
特点:
-
目标方法前后都可织入增强处理
-
可获取或修改目标方法的参数、返回值
-
可对目标方法进行异常处理,甚至可以决定目标方法是否执行
二、构造注入
① 在配置文件 开启注解扫描包
<!--注解扫描包 -->
<context:component-scan base-package="com.cskt.mapper,com.cskt.service"/>
② 在mapper 使用@Repostroy 相当于在配置文件写了 配置bean
里面可以放一个名字@Repostroy("userMapper") 相当于id名字
如果不给就是类名名字 首字母小写
③ 在service @Service 相当于在配置写了配置bean
<bean id="userService" class="类的全路径" >
<constructor-arg ref="依赖对象"/>
</bean>
④ 在service 引入 自动装配
@Autowired //自动装配 四种 get set 构造函数 根据名称 根据类型
public UserMapperImpl userMapper;
三、p命名空间注入
使用属性而不是子元素的形式配置Bean的属性
<bean id="唯一标识" class="类的全路径" p:"属性1"="注入的值" p:"属性2"="注入的值" />
<bean id="唯一标识" class="类的全路径" p:属性-ref="注入的Bean" />
配置文件中使用p命名空间时,需要先添加p命名空间的声明
xmlns:p="http://www.springframework.org/schema/p"
四、不同数据类型注入
五、使用注解实现Spring IoC
注解方式将Bean的定义信息和Bean实现类结合在一起,Spring提供的注解有
@Component:实现Bean组件的定义
@Repository:用于标注DAO类
@Service:用于标注业务类
@Controller:用于标注控制器类
六、注解使用aop
1. 在配置文件加入 扫描 包
<bean id="myAcpect" class="com.cskt.aspect.MyAspect" />
<aop:aspectj-autoproxy/>
2.定义一个切面 类上面加一个注解 @Aspect
// 给那个方法增强 。。。。。,
@Before("execution( * com.cskt.service..*.*(..))")
public void before(){
System.out.println("前置通知.... 在方法之前要執行的公共代码放在这里");
}
常用的注解
@AfterThrowing 异常通知
@Before 前置通知
@AfterReturning 后置通知
@Around 环绕通知
@After 最终通知
@Aspect 切面
@Pointcut 切入点
总结: