Spring笔记 Day03

Spring的AOP的开发(AspectJ的注解方式)

AOP 模块提供了面向方面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,从而使实现功能的代码彻底的解耦出来

aop的底层实现

如果采用接口 Spring底层自动采用jdbc动态代理

如果没有采用Cjlib动态代理

aop注解入门开发:

1.将目标类和切面类交给spring管理

2.
<aop:aspectj-autoproxy />

3.在切面类中添加注解@Aspect和对应的通知注解

@Before(value=“切入点表达式”)

后置通知: 无论是否有错误都会执行通知

当需要多处用一个方法加强时

可以直接定义切入点注释

然后在别的加强方法中直接调用

//切入点注释 
@Pointcut(value="execution(* com.UserDao.UserDao.thoww(..))")
public void pointcut1() {}

Spring的JDBC的模板的使用

com.demo1

jdbcDemo1:传统的jdbc模板的写法

jdbcDemo2:通过Spring内部配置的jdbc模板写法 (jdbc dbcp c3p0分别测试)

引入jar

1.一般用法类似于dbutils

2.将连接池的配置将给spring

​ 通过属性注入完成 注册驱动 url username/password

3.将jdbc 的模板交给spring管理

​ 将连接池通过属性注入到jdbc的模板中

4.在测试类中 通过注解得到 jdbcTemplate 完成数据库操作

使用开源连接池

dbcp:

c3p0:

​ 用于将类交给spring管理、属性注入、直接在测试类中用jdbc模板

抽取数据库配置从xml中提取出来

1.new file

2.xml中引入属性文件

​ 第一种方式 通过bean标签(应用少)

classpath 路径:src路径下的文件在编译后会放到WEB-INF/classes路径下吧。默认的classpath是在这里。直接放到WEB-INF下的话,是不在classpath下的。用ClassPathXmlApplicationContext当然获取不到

​ 第二种方式:通过context标签引用(一般采用)

<context:property-placeholder location=“classpath:jdbc.properties”/>

​ 通过引用属性文件;

​ 然后在value中输入${key值}

通过jdbc模板进行CRUD操作 --添删改查

返回对象

返回值是一个对象时 采用接口方式封装对象

RowMapper 内置方法将结果放置到结果集中然后set到自定义类中

Spring的事务管理

com.demo2 事务管理编写

复习事务

Spring进行事务管理的时候,首先***平台事务管理器***根据***事务定义信息***进行事务管理,在事务管理过程中,产生各种状态,将这些状态的信息记录到***事务状态***的对象中。

平台事务管理器:接口,是Spring用于管理事务真正的对象!

​ DataSourceTransactionManager:底层使用jdbc管理事务

事务定义信息:用于定义事务的相关信息:隔离级别,超时信息,传播行为,是否只读 TransactionDefinition

事务状态:用于记录在事务管理过程中,事务状态的对象TransactionStatus

传播行为:

​ Spring中提供了七种传播行为

事务的传播行为主要用来解决业务方法互相调用的问题

分为三类 : 1.保证多个操作是在同一个事务中,

​ 2.保证多个操作不在同一个事务中,

​ 3.嵌套事务

在这里插入图片描述

propagation requierd 默认值

requires new

nested

搭建Spring的事务管理的环境

转账案例:SpringDay_03-jdbc-demo2

​ 1.Service

​ 2.Dao

​ 3.application

添加事务:

一:编程式事务

​ 1.配置平台事务管理器

​ 2.配置事务管理模板(简化事务编写代码)

​ 3.在业务层注入事务管理的模板

​ 4.编写事务管理代码

二:声明式事务管理

​ ①xml方式的声明式事务管理

​ 基于aop aspectj的开发 引入相关包:

​ aspects.jar aop.jar aopalliance.jar aspectj.weaver.jar

​ 恢复转账环境 新建包 con.jdbc.demo3

​ 1.配置事务管理器

​ 2.配置事务的增强

​ 3.将增强应用到目标类(aop的配置方式)

​ ②注解方式声明事务管理

​ 恢复转账环境 新建包 con.jdbc.demo4

​ 1.配置事务管理器

​ 2.开启注解事务

​ 3.在业务层上添加注解

继承 JdbcDaoSupport

​ JdbcDaoSupport中默认创建了jdbc模板和传入dataSource所以 在配置DAo时直接继承JdbcDaoSupport在配置文件中配置dataSource!

public final void setDataSource(DataSource dataSource) {
​ if (this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
​ this.jdbcTemplate = createJdbcTemplate(dataSource);
​ initTemplateConfig();
​ }
​ }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值