很多天没有更新Blog,平时虽然工作不忙,但是回到家我是不想写东西,今天周末例外。前三章已经说了Hibernate的0配置过程,现在该轮到Spring了。我们的项目里,一般将spring作为service bean的容器,这样的用法会有3个地方会和spring的配置有关系。
1. 利用xml配置来注册service bean到spring中。
2. 利用spring的xml来定义数据库Connnection,hibernate Session等信息。
3. 利用spring的xml来管理servcice方法的事务。
其中第二条,只要在一个总的地方配置一次就可以了,所以把这部分信息做0配置处理也没什么意义,反正项目中肯定会有一个applicationContext.xml的文件,配在那里就可以了,也不会使得文件变大很多。
对于第三条来说,由于spring是支持正则表达式的方式来对一系列类和一系列的方法进行事务配置,所以只要我们定好类的命名规范,方法的命名规范,这些信息也是只需要在总的配置文件里面配置一次就可以的。
比如:
定下类的命名规范是所有leeon.service包下所有名字叫xxxxxxService的类
定下方法的命名规范是,所有getXXXX,listXXXXX,findXXXX,queryXXXX,validXXXX的方法,事务配置成supports,其余的配置成required。
我这里说一下另一种方式来配置事务,就是利用Spring提供的@Transactional标记。启动这类的事务配置方式,需要在applicationContext文件中加入这样一段话
<tx:annotation-driven/>
接下来我们就可以在service bean上面使用annotation了。@Transactional可以配置在接口上,也可以配置在实现类上,可以配置在接口方法上,也可以配置在实现类的方法上,优先级是实现类方法 > 接口方法 > 实现类 > 接口类。我们的项目中一般都会对service bean建一个接口,所以一般我将这个标签配置在接口的类和接口的方法上。类上给出一个默认的配置,一般是查询用的配置,再在具体的部分方法上配置写数据库方法的事务。
@Transactional(readOnly = true, propagation = Propagation. NEVER)
public interface ILessonService {
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void saveOrUpdateLesson(Lesson lesson) throws Exception;
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public void removeLesson(Long[] ids) throws Exception;
public List<Map<String, String>> listLesson(PageInfo pager, OrderInfo order, Map<String, Object> filter) throws Exception;
public Lesson loadLesson(Long id) throws Exception;
public List<Map<String, String>> listLessonByStudent(Long studentId, PageInfo pager, OrderInfo order, Map<String, Object> filter) throws Exception;
public List<String> listLessonNoByStudentNotSelected(Long studentId) throws Exception;
public Long findLessonByNo(String no) throws LessonNotExistException, Exception;
}
这样一看,大家都会立刻明白事务的配置情况,很清楚。接下就剩下一个地方要大量使用spring xml配置文件,就是将service bean注册到spring容器的地方。
其实,网上已经有一个spring的annotation包,可以解决这个问题,让spring实现0 xml配置,但是这个包需要jdk1.6来支持,我们的项目还跑在jdk1.5上,所以我只好再次自己去扩展spring。不过如果能用jdk1.6,我肯定还是会选择这个spring的annotation包的。
分享到:
相关推荐
ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ssh框架整合配置文件 ...
rapidsh-SSH经典整合框架-包括权限管理-文件上传下载-用户管理-分页-lookup
自己手动搭建的一个ssh框架,对于初学者有很好的帮助!数据库oracle,c3p0连接池……
java SSH框架--学生学籍管理系统
这是一个spring-boot整合ssm和ssh框架所需要的pom依赖文件
ssh框架-后台管理模板 包含mysql基础数据库
ssh框架配置文件的实例,教会大家使用ssh框架的xml配置
使用myeclipse8.5与mysql搭建的SSH框架,并含有登陆实例,自己创建users数据库表,直接就可以跑起来
│ 北京动力节点SSH前言-016-Log4j-日志输出控制文件的作用.mp4 │ 北京动力节点SSH前言-017-Log4j-日志的用途及Log4j.mp4 │ 北京动力节点SSH前言-018-Log4j-日志基础.mp4 │ 北京动力节点SSH前言-019-Log4j-Log4j...
SSH框架及配置文件
ssh配置文件ssh配置文件ssh配置文件ssh配置文件
数据库使用的是MySql 5.7,已导出为sql文件(blog.sql) 包括后台管理和前端展示两部分构成: * 后台使用Easyui进行开发的界面 * 前台使用Bootstrap开发的界面 前台和后台交互全部通过ajax传输json来进行数据...
这是我第一次用Spring+Struts2+Hibernate框架写的项目,数据库使用的是mysql,应该比较适合初学者
ssh框架事务管理applicationContext.xml配置文件
idea配置ssh框架
ssh框架简单示例,使用ssh框架实现简单的注册登录,适合初学习ssh框架的人来参考练习!
SSH三大框架集成或单独配置相关配置文件详解,超全!
提供一套SSH框架实现的办公自动化系统、供学习参考。
最基础的SSH框架应用,最基础的ssh框架使用案例
在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,本文由大象根据项目实践经验,通过一个实例,详细的为大家讲解如何实现全注解式的开发。