很多天没有更新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_jar"很可能包含了经过精简后的SSH框架各个组成部分的jar文件,每个文件可能已经去除了冗余或未使用的类和方法。在使用这个精简版的SSH框架时,开发者需要确保所有必要的功能都已包含,并且在遇到新的功能...
在实际开发中,SSH框架结合CRM理念,能够为企业打造一个高效、灵活且易于维护的客户关系管理系统。开发过程中,还需要考虑安全性、性能优化、数据库设计以及用户体验等多个方面,确保系统的稳定性和实用性。同时,...
【标题】"JAVA源码 jsp源代码程序 代码 SSH框架 easyui 进销存管理系统"揭示了这个项目的...通过分析和学习这个项目的源代码,开发者不仅可以提升对SSH框架的理解,也能掌握如何利用EasyUI来打造高效的后台管理系统。
SSH框架,全称为Spring、Struts和Hibernate,是Java Web开发中的经典组合,常用于构建企业级应用。本文将详细讲解如何在Myeclipse 6.0环境下配置SSH框架。 首先,我们需要创建一个新的WEB工程。在Myeclipse中,选择...
1. 避免jar包冲突:由于SSH框架各自有一些公共的依赖,如log4j、commons-logging等,可能导致版本冲突,因此需要合理管理jar包,避免引入重复或不兼容的版本。 2. 数据源配置:在Spring中配置数据源,连接到数据库,...
#### SSH框架集成:打造高效企业级应用 SSH框架的集成为企业级应用开发带来了极大的便利。它们各自扮演着不同的角色,共同构建了一个功能强大、结构清晰的应用系统: 1. **视图层**:Struts负责前端界面的展示,...
通过分析这个项目的源代码,新手可以深入理解SSH框架如何协同工作,以及如何利用Bootstrap来打造现代Web应用。这样的实践项目对于巩固理论知识、提升实际操作技能有着显著的作用,同时也适合作为参与Web开发比赛的...
在本项目中,我们主要探讨的是...通过理解和实践这样的项目,开发者可以深入理解SSH2框架的使用,以及如何结合Ztree和Bootstrap来打造用户友好的界面。同时,对于Oracle数据库的使用和管理也是提升数据库技能的好机会。
4. **Hibernate实体类和映射文件**:掌握如何创建Java对象并映射到数据库表,以及编写对应的hibernate.cfg.xml配置文件。 5. **Spring配置**:理解Spring的bean配置,包括依赖注入、事务管理等。 6. **Spring AOP**...
4. **配置Spring**:创建Spring的配置文件(如applicationContext.xml),定义bean的实例化、依赖注入以及事务管理等。 5. **配置Hibernate**:配置hibernate.cfg.xml文件,指定数据库连接信息,以及实体类的映射。...
4. 创建Spring配置文件,定义bean及其依赖关系。 5. 设计和实现Service层,封装业务逻辑。 6. 编写DAO层,进行数据库操作。 7. 创建JSP页面作为视图,展示数据和交互界面。 8. 集成文件上传功能,处理文件的上传和...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架。本章节将详细介绍如何在...通过不断的实践和优化,开发者可以更好地利用SSH框架解决实际问题,打造出高质量的Web应用。
SSH框架整合是Java Web开发中常见的一种技术组合,它涵盖了Spring、Struts2和Hibernate这三个主要的开源框架。这些框架分别负责控制层、业务层和数据访问层的管理,为开发者提供了一种高效且可维护的开发模式。下面...
需要注意的是,尽管SSH提供了强大的功能,但其配置较为复杂,尤其是当项目规模增大时,大量的XML配置文件可能导致维护困难。因此,SSH框架的注解实现应运而生,它简化了配置,提高了开发效率,并使代码更加清晰。...
首先,让我们逐一了解SSH框架的核心组件: 1. **Struts**:这是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,主要负责处理HTTP请求,控制应用程序的流程。在超市管理系统中,Struts处理用户从POS机...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。...通过深入理解每个框架的注解用法,可以更好地驾驭SSH框架,打造高效稳定的Web应用。
4. **整合Hibernate**:添加Hibernate库,创建Hibernate的配置文件(hibernate.cfg.xml),配置数据源、实体类和映射文件。编写DAO(数据访问对象)层,使用SessionFactory和Session进行数据库操作。 5. **测试与...
SSH框架的整合,使得开发人员能够更高效地构建可扩展且易于维护的Web应用。 ### Struts2:控制层 Struts2作为MVC架构中的控制层,负责接收HTTP请求,解析请求参数,调用业务逻辑,并将处理结果转发到相应的视图...
SSH开发电影管理系统是一种基于Java技术的Web应用框架组合,由Struts2、Spring和Hibernate三个开源框架集成。这个系统主要用于实现在线影院的功能,允许用户在线浏览、搜索和观看电影,同时还可能包括用户管理、评论...
- **src**:源代码目录,包括Java文件(SSH框架的业务逻辑、实体类等)、HTML模板(Struts2的视图部分)、CSS和JavaScript文件(BootStrap和其他前端资源)。 - **WEB-INF**:Web应用的私有区域,包含web.xml(Web...