专题三
(1)使用注解来完成AOP:
1,想办法把类让Spring来管理(XML配置或者注解方式)
2,在增强的提供类上添加标签:
3,在Spring配置文件中开启注解的AOP;
4,关于AOP的其他知识:
1,在增强提供类的方法上,这些方法的第一参数都可以设置为org.aspectj.lang.JoinPoint;可以通过这个JoinPoint获得本次运行的方法相关信息;
2,针对异常通知,我们如果想获得抛出异常的相关信息:
5,选择:
一般在项目开发中,我们推荐使用XML的方式来完成AOP;
更直观和通用;
(2)为什么选择SpringJDBC?
1,SpringJDBC能做些什么事情
2,SpringJDBC和传统JDBC对比
3,SpringJDBC的使用方式:
0:拷贝SpringJDBC相关jar包(spring-jdbc.jar spring-tx.jar)
1,SpringJDBC的准备工作,配置DataSource;
2,需要准备的db.properties:
3,实现自己的DAO:
接口---实现类
在DAO的方法中使用JdbcTemplate来调用即可:
三种查询结果集的处理方式:
3,SpringJDBC还为我们提供了什么?
要使用JdbcTemplate,需要自己通过DataSource创建JdbcTemplate;代码重复;
在Spring中,为我们提供了一个JdbcDaoSupport类,在这个类中,帮我们完成了重复代码;
所以,我们的DAO只需要继承JdbcDaoSupport就可以了;但是注意,DAO一定要注入一个datasource
(3)Spring中集成其他持久化框架的一般策略:
XXXX(Jdbc)Template+XXXX(Jdbc)DaoSupport
在XXXX(Jdbc)Template提供方便的方法;
在XXX(Jdbc)DaoSuppoert重复XXXX(Jdbc)Template的注入过程;
(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就是一个事务的包装);
3)Spring中提供的TranscationManager(TranscationManager提供了AOP控制事务中的DO什么):
4,Spring中事务AOP控制:
1,既然是AOP控制事务,包括在什么地方,什么时间,做什么;
1,做什么:TransactionManager;
2,在什么地方:Point-cut,切入点应该是切在Service方法上;
3,在什么时间?tx:advice
2,配置(XML,Annotation)
0:引入事务相关的schema
1,XML配置Spring事务;
配置transcationManager
2,配置一个事务相关的控制(在什么时间+做什么)
3,配置一个AOP:
4,tx:attribute
5,事务传播机制:(怎么处理当前已有的事务;)
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