Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

时间:2020-12-15 20:34:36

1.1      上次课内容回顾

l  SpringIOC的注解开发

n  注解的入门

u  引入aop的包

u  引入context约束

l  <context:component-scan />

u  使用注解开发

l  @Component           :定义Bean

n  @Controller    WEB

n  @Service          Service

n  @Repository  DAO

l  属性注入:

n  普通属性        @Value

n  对象属性        @Resource

u  @Autowired   :按类型注入属性,按名称@Qulifier

n  XML方式和注解方式比较

u  XML方式        :适用性更广,结构更加清晰。

u  注解方式        :适用类是自己定义,开发更方便。

n  XML和注解的整合开发

u  XML定义类

u  注解属性注入

l  SpringAOP的基于AspectJXML的开发

n  AOP的概述

u  AOP:面向切面编程,是OOP的扩展和延伸,是用来解决OOP遇到问题。

n  SpringAOP

u  底层的实现

l  JDK的动态代理

l  Cglib的动态代理

u  AOP的相关术语

l  连接点:可以被拦截的点。

l  切入点:真正被拦截的点。

l  通知:增强方法

l  引介:类的增强

l  目标:被增强的对象

l  织入:将增强应用到目标的过程。

l  代理:织入增强后产生的对象

l  切面:切入点和通知的组合

u  AOP的入门开发

l  引入jar

l  编写目标类并配置

l  编写切面类并配置

l  进行aop的配置

<aop:config>

         <aop:pointcut expression=”execution(表达式)” id=”pc1”/>

<aop:aspect >

         <aop:before method=”” pointcut-ref=”pc1”/>

</aop:aspect>

</aop:config>

u  通知类型

l  前置通知

l  后置通知

l  环绕通知

l  异常抛出通知

l  最终通知

 

u  切入点表达式写法

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

<?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"
	xmlns:tx="http://www.springframework.org/schema/tx"
	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 
	http://www.springframework.org/schema/tx/spring-tx.xsd">
	
</beans>

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

用注解切入点配置 替换原有的注解:

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 

 

 

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

create database spring4_day03;
use spring4_day03;
create table account(
	id int primary key auto_increment,
	name varchar(20),
	money double
);

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

注意上图之所以可以直接用Resource注入模板(xml未开启注解)是因为引入了TX的jar包 但是只能在单元测试使用 不能再其他类使用。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

注意查找的封装操作 如上图。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

 Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

上图 只给Dao注入连接池就好 因为实现类继承了接口 会自动创建模板。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

但如果 有异常:

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

就会出现 前者钱少了 后者却没收到钱。

上面是无事务保证的过程,接下来引入事务:

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。

Spring第三天:Spring的AOP的注解开发、Spring的声明式事务、JdbcTemplate。