Spring学习笔记专题二

专题二

(1)使用注解来完成AOP:

1,想办法把类让Spring来管理(XML配置或者注解方式)

2,在增强的提供类上添加标签:

Spring学习笔记专题二_第1张图片
Spring学习笔记专题二_第2张图片
Spring学习笔记专题二_第3张图片
Spring学习笔记专题二_第4张图片
Spring学习笔记专题二_第5张图片
Spring学习笔记专题二_第6张图片

3,在Spring配置文件中开启注解的AOP;

4,关于AOP的其他知识:

1,在增强提供类的方法上,这些方法的第一参数都可以设置为org.aspectj.lang.JoinPoint;可以通过这个JoinPoint获得本次运行的方法相关信息;

2,针对异常通知,我们如果想获得抛出异常的相关信息:

Spring学习笔记专题二_第7张图片

5,选择:

一般在项目开发中,我们推荐使用XML的方式来完成AOP;

更直观和通用;

(2)为什么选择SpringJDBC?

1,SpringJDBC能做些什么事情

Spring学习笔记专题二_第8张图片

2,SpringJDBC和传统JDBC对比

Spring学习笔记专题二_第9张图片

3,SpringJDBC的使用方式:

0:拷贝SpringJDBC相关jar包(spring-jdbc.jar   spring-tx.jar)

1,SpringJDBC的准备工作,配置DataSource;

Spring学习笔记专题二_第10张图片

2,需要准备的db.properties:

3,实现自己的DAO:

接口---实现类

Spring学习笔记专题二_第11张图片

在DAO的方法中使用JdbcTemplate来调用即可:

Spring学习笔记专题二_第12张图片

三种查询结果集的处理方式:

Spring学习笔记专题二_第13张图片
Spring学习笔记专题二_第14张图片
Spring学习笔记专题二_第15张图片

3,SpringJDBC还为我们提供了什么?

要使用JdbcTemplate,需要自己通过DataSource创建JdbcTemplate;代码重复;

在Spring中,为我们提供了一个JdbcDaoSupport类,在这个类中,帮我们完成了重复代码;

所以,我们的DAO只需要继承JdbcDaoSupport就可以了;但是注意,DAO一定要注入一个datasource

Spring学习笔记专题二_第16张图片
Spring学习笔记专题二_第17张图片

(3)Spring中集成其他持久化框架的一般策略:

XXXX(Jdbc)Template+XXXX(Jdbc)DaoSupport

在XXXX(Jdbc)Template提供方便的方法;

Spring学习笔记专题二_第18张图片

在XXX(Jdbc)DaoSuppoert重复XXXX(Jdbc)Template的注入过程;

Spring学习笔记专题二_第19张图片

(4)Spring中的事务管理

1)事务为什么要开在service上?

如果事务不开在service上,而放在dao里面,每一个dao方法都是一个独立的事务;如果一个service需要使用到多个dao中的方法,如果在service中任何位置出错,都不能保证事务正确处理;

所以事务要在开在service方法上,并且,在service方法开始执行之前,得到Connection/Session,并开启事务,把Connection/session放到当前线程中;所有的DAO方法都应该从当前线程中获取Connection/Session,完成具体业务的处理,在Service方法执行结束的时候,从当前线程中拿到Connection/Session,做提交/回滚操作;最后关闭资源;

2)Spring中事务相关的重要对象:

1,PlatformTransactionManager:平台的事务管理器;在这个接口中抽象了事务管理的一般方法:开启/提交/回滚;

为什么需要TranscationManager?屏蔽不同持久化层的事务处理机制;

2,TransactionDefinition:

在这个类中定义了:定义了一个事务相关的属性;Spring会根据这个事务相关的属性来控制事务(通过配置告诉Spring的);

PROPAGATION_XX:事务的传播机制;

ISOLATION_XX:事务的隔离级别;

3,TransactionStatus:在Spring中,一个TranscationStatus代表一个事务的状态(简单理解为,TransactionStatus就是一个事务的包装);

Spring学习笔记专题二_第20张图片
Spring学习笔记专题二_第21张图片

3)Spring中提供的TranscationManager(TranscationManager提供了AOP控制事务中的DO什么):

Spring学习笔记专题二_第22张图片

4,Spring中事务AOP控制:

1,既然是AOP控制事务,包括在什么地方,什么时间,做什么;

1,做什么:TransactionManager;

2,在什么地方:Point-cut,切入点应该是切在Service方法上;

3,在什么时间?tx:advice

2,配置(XML,Annotation)

0:引入事务相关的schema

Spring学习笔记专题二_第23张图片

1,XML配置Spring事务;

配置transcationManager

Spring学习笔记专题二_第24张图片

2,配置一个事务相关的控制(在什么时间+做什么)

Spring学习笔记专题二_第25张图片

3,配置一个AOP:

Spring学习笔记专题二_第26张图片

4,tx:attribute

Spring学习笔记专题二_第27张图片

5,事务传播机制:(怎么处理当前已有的事务;)

Spring学习笔记专题二_第28张图片

REQUIRED也是默认的事务传播规则

6,使用Ann配置:

1,在类或者方法上面直接加上@Transcational标签即可;

2,在配置文件中添加

7,选择:

强烈建议使用XML的方式;

(5)SSH集成:

1)创建项目;修改编码;修改class编译目录;

2)创建Domain;

3)创建hibernate映射文件;

4)创建DAO接口;

5)hibernate和Spring集成;

1,拷贝相关jar包;

2,创建Spring配置文件;

1.创建一个db.properties;

2.01_引入db.properties

3.02_配置datasource

4.03_配置sessionfactory

6)实现DAO(自己维护HibernateTemplate)

7)配置DAO

8)创建Service接口;

9)实现service接口;

10)配置service;

11)配置hibernate的事务;

1,配置一个事务管理器;

2,配置一个tx:advice(方法上面的事务属性)

3,配置一个AOP包装事务

12)做一个测试(等service弄完直接测试service)

13)struts和spring集成;

1,拷贝struts相关jar包

2,完成action

3,配置struts2

4,正常完成页面相关内容

5,在web.xml中配置struts相关过滤器;

6,struts2和Spring集成原理

1.拷贝struts2-spring-plugin-xxxx.jar;

2.查看struts-plugins.xml

你可能感兴趣的:(Spring学习笔记专题二)