1).熟悉Spring整合Struts
2).熟悉Spring整合Hibernate
3).掌握Spring事务
4).熟悉Struts2、Spring4、Hibernate4整合配置
5).掌握SSH2框架开发相关注解
1、Spring整合Struts
1).搭建Struts2框架
2).搭建Spring框架
web.xml配置:配置启动Spring IOC容器的Listener
3).Spring整合Struts
步骤:
(1)、Struts2的Spring插件包:struts2-spring-plugin-2.1.6.jar。
(2)、在spring的配置文件中正常配置Action,
注意:Action的scope为prototype。
(3)、在struts2的配置文件中配置action时,class属性指向bean
配置中该Action的id。
注:
2、Spring整合Hibernate
1).搭建Hibernate框架
2).Spring整合Hibernate
在Spring配置文件中配置:c3p0数据源,SessionFactory,事务
测试步骤:
(1)、Spring事务类型(事务传播特性或事务传播行为)
REQUIRED:如果当前有事务在运行,当前方法在这个事物中运行,否则就创建新的事物运行
REQUIRED_NEW:当前方法必须启动新的事物,并在该事物中运行,如果有事务在运行,就把他挂起。
(2)、Spring事务隔离级别
read_committed:只允许事务读取已经被其他事务提交的变更,可以避免脏读,但不可重复读和幻读的问题仍然会出现
read_uncommitted:允许事务读取未被其他事务提交的变更、脏读,不可重复读和幻读的问题都会出现
扩展:
1)、脏读:指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,
这时,另一个事务也访问这个数据,然后使用了这个数据(第一个事务对某些数据进行修改但没有提交,
第二个事务访问到了修改后的数据)
2)、不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。
那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一次事务两次读到的数据可能是不一样的。
这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读
3)、幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,
这种修改涉及到表中的全部数据行。同时。第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。
那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好像发生了幻觉一样
不可重复读的重点是修改,同样的条件,你读取过的数据,再次读取出来发现值不一样了
幻读的重点在于新增或者删除:同样的条件,第一次和第二次读取出来的记录数不一样了
事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性.
4)、什么是事务?
事务就是一系列动作,他们被当作一个单独的工作单元,这些事务要么全部完成,要么全部不起作用
5)、事务的四个关键属性(ACID)
(1).原子性(atomicity): 事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成要么完全不起作用
(2).一致性(consistency): 一旦所有事务动作完成,事务就被提交。数据和资源就处于一种满足业务规则的一致性状态中
(3).隔离性(isolation): 可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏
(4).持久性(durability): 一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,通常情况下,事务的结果被写到持久化存储器中
3、SSH2相关注解:
(1).Spring相关注解:
@Repository—Dao类自动注入
@Service—业务类自动注入
@Controller—Action自动注入
@Autowired—自动装配注入
@Component—基本注解, 标识了一个受 Spring 管理的组件
(2).Spring Aop相关注解:
@Aspect — 标识一个切面类
@Order(0) — 指定切面的优先级
@Pointcut —重用切入点定义
@Before –前置通知
@After-后置通知
2).熟悉Spring整合Hibernate
3).掌握Spring事务
4).熟悉Struts2、Spring4、Hibernate4整合配置
5).掌握SSH2框架开发相关注解
1、Spring整合Struts
1).搭建Struts2框架
2).搭建Spring框架
web.xml配置:配置启动Spring IOC容器的Listener
3).Spring整合Struts
步骤:
(1)、Struts2的Spring插件包:struts2-spring-plugin-2.1.6.jar。
(2)、在spring的配置文件中正常配置Action,
注意:Action的scope为prototype。
(3)、在struts2的配置文件中配置action时,class属性指向bean
配置中该Action的id。
注:
2、Spring整合Hibernate
1).搭建Hibernate框架
2).Spring整合Hibernate
在Spring配置文件中配置:c3p0数据源,SessionFactory,事务
测试步骤:
(1)、Spring事务类型(事务传播特性或事务传播行为)
REQUIRED:如果当前有事务在运行,当前方法在这个事物中运行,否则就创建新的事物运行
REQUIRED_NEW:当前方法必须启动新的事物,并在该事物中运行,如果有事务在运行,就把他挂起。
(2)、Spring事务隔离级别
read_committed:只允许事务读取已经被其他事务提交的变更,可以避免脏读,但不可重复读和幻读的问题仍然会出现
read_uncommitted:允许事务读取未被其他事务提交的变更、脏读,不可重复读和幻读的问题都会出现
扩展:
1)、脏读:指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,
这时,另一个事务也访问这个数据,然后使用了这个数据(第一个事务对某些数据进行修改但没有提交,
第二个事务访问到了修改后的数据)
2)、不可重复读:是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。
那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一次事务两次读到的数据可能是不一样的。
这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读
3)、幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,
这种修改涉及到表中的全部数据行。同时。第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。
那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好像发生了幻觉一样
不可重复读的重点是修改,同样的条件,你读取过的数据,再次读取出来发现值不一样了
幻读的重点在于新增或者删除:同样的条件,第一次和第二次读取出来的记录数不一样了
事务管理是企业级应用程序开发中必不可少的技术, 用来确保数据的完整性和一致性.
4)、什么是事务?
事务就是一系列动作,他们被当作一个单独的工作单元,这些事务要么全部完成,要么全部不起作用
5)、事务的四个关键属性(ACID)
(1).原子性(atomicity): 事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成要么完全不起作用
(2).一致性(consistency): 一旦所有事务动作完成,事务就被提交。数据和资源就处于一种满足业务规则的一致性状态中
(3).隔离性(isolation): 可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏
(4).持久性(durability): 一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,通常情况下,事务的结果被写到持久化存储器中
3、SSH2相关注解:
(1).Spring相关注解:
@Repository—Dao类自动注入
@Service—业务类自动注入
@Controller—Action自动注入
@Autowired—自动装配注入
@Component—基本注解, 标识了一个受 Spring 管理的组件
(2).Spring Aop相关注解:
@Aspect — 标识一个切面类
@Order(0) — 指定切面的优先级
@Pointcut —重用切入点定义
@Before –前置通知
@After-后置通知