spring与hibernate的整合问题—Spring的配置文档applicationContext.xml
来源:互联网 发布:bp神经网络算法实例 编辑:程序博客网 时间:2024/06/15 20:50
进行java EE开发最常用的就是Spring,
文档中最基本的配置就是各种bean的配置,bean的配置有几个是必不可少的
Spring是一种轻量级的java开发框架,是一种javaEE的容器管理工具,Spring的核心就是IoC容器,Spring利用IoC容器来注册bean,对bean的管理能够实现java对象之间的依赖关系,从而成为完成其他复杂任务的基础。Spring建立在IoC容器核心功能之上的其他重要功能有:AOP(面向切面编程),事务管理,springMVC,ORM等,这些功能都在Spring的核心配置文档applicationContext.xml中得以体现。
下面就简单总结下applicationContext.xml的最基本最简单的结构。先上代码(最精简版):
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"
- default-lazy-init="true" default-autowire="byName" default-init-method="" default-destroy-method="">
- <!-- 用于读取properties文件,此处将数据库连接的用户名密码等存在jdbc.properties文件中 -->
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <list>
- <value>WEB-INF/jdbc.properties</value>
- </list>
- </property>
- </bean>
- <!-- 配置数据库连接 -->
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${jdbc.driverClassName}" />
- <property name="url" value="${jdbc.url}" />
- <property name="username" value="${jdbc.username}" />
- <property name="password" value="${jdbc.password}" />
- <property name="poolPreparedStatements" value="true" />
- <property name="defaultAutoCommit" value="true" />
- </bean>
- <!-- 整合hibernate -->
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
- <property name="hibernateProperties">
- <value> hibernate.dialect=${hibernate.dialect}
- hibernate.query.substitutions=true
- hibernate.show_sql=true
- hibernate.hbm2ddl.auto=none
- </value>
- </property>
- <!-- 持久化类,注解形式 -->
- <property name="annotatedClasses">
- <list>
- <value>nju.software.xkxt.data.dataobject.UserDO</value>
- </property>
- </bean>
- <!-- 事务管理 注:事实上当事务管理器名字为transactionManager时,就不需要加transaction-manager属性 -->
- <tx:annotation-driven transaction-manager="transactionManager" />
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <!-- 共用Dao -->
- <bean id="userDao" class="nju.software.xkxt.data.dao.implement.UserDaoImpl"></bean>
- <!-- 共用Service -->
- <bean id="userService" class="nju.software.xkxt.service.implement.UserServiceImpl"></bean>
- </beans>
![Spring的配置文档applicationContext.xml Spring的配置文档applicationContext.xml](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
1.sessionFactory
spring中ORM的配置。如果Dao层要使用hibernate,用到的hibernateTemplate,那么必须要建立sessionFactory类.sessionFactorybean是在ssh整合中hibernate托管给spring的,因此配置文档中要配置sessionFactory,并且将sessionFactory装配到相应的Dao中。由于文档beans的默认配置中有default-autowire=byName这个默认配置,因此采用自动装配的方式,通过寻找名字sessionFactory来注入到每个Dao中。sessionFactory要装配dataSource,此处也不需要手动装配,只需要在文档中定义dataSource的bean即可。
2.dataSource
配置数据库连接,要装配到sessionFactory中。要声明数据库的连接路径url,数据库用户名username,密码password等。此处defaultAutoCommit=true是设置sql语句的自动提交,即执行一条sql,都立即提交,这样很方便,但是有时候会出现问题。因此就用到事务管理,参见事务管理下文,jdbc的事务管理中要屏蔽其自动提交。还有,我们发现以上的属性url,username,password都是通过文档引入的,并不是写死在里面的,因此还需要配置一个bean就是propertyConfigurer。
3.propertyConfigurer
这个配置用于配置properties文件,主要的用处就是从properties文件中读取相应的属性和属性值到applicationContext文档(其实properties文件就是一个map,key-value键值对形式)。这样的好处是将用户名和密码等信息从applicationContext文档中抽取出来,安全而且修改方便。
4.其他的自定义的bean
在编写代码中,如果要应用spring提供的ioc的功能,就可以在applicationContext文档中配置相应的dao层和service层的bean,配置起来相当方便,例子如上图。而且用起来也很方便。
5.transactionManager
以上几类bean都是必须要配置的。如果用到事务管理的相关内容,就需要配置transactionManagerbean,因此该bean并不是必须的,只是在用到的时候才进行配置。配置也相当简单如上图。具体的spring的事务管理的介绍请参见http://blog.csdn.net/dreamrealised/article/details/9123173。在此不在赘述。
6.AOP
aop并不是必须的,什么时候用到拦截器的时候就对相应的bean进行配置,aop的介绍打算从新写一篇博文来介绍。
7.spring MVC
spring MVC请参见后续博文。
最后,beans的属性中有一个属性default-lazy-init,这个属性是用来设置bean的延迟实例化的,默认的值为false。如果default-lazy-init=true,则说明该bean在ApplicationContext实现在初始化时被提前实例化。如果设为false,bean将告诉IoC容器在ApplicationContext启动时不进行实例化,而是在第一次被用到时才实例化。
另外bean的init-method属性(beans的default-init-method)指定bean初始化时执行的方法;bean的distory-method属性(default-destroy-method)指定bean销毁时执行的方法。
0 0
- spring与hibernate的整合问题—Spring的配置文档applicationContext.xml
- Spring与Hibernate的整合applicationContext.xml中配置
- Spring与Hibernate整合的applicationContext.xml文件配置
- ssh整合!Struts.xml、hibernate与spring整合的applicationContext.xml、web.xml文件的配置!
- Spring 整合 hibernate的 applicationContext.xml 数据源配置
- spring与hibernate集成--spring配置文件applicationContext.xml的配置:
- hibernate与spring整合的配置文档问题
- Spring的配置文档applicationContext.xml
- Spring的配置文档applicationContext.xml
- Hibernate与Spring整合,配置文件applicationContext.xml
- Hibernate与Spring整合,配置文件applicationContext.xml
- spring+hibernate整合web.xml、applicationContext.xml配置
- spring整合hibernate(注解、xml)applicationContext.xml配置
- spring整合hibernate(注解、xml)applicationContext.xml配置
- spring+hibernate整合web.xml、applicationContext.xml配置
- spring整合hibernate(注解、xml)applicationContext.xml配置
- spring整合hibernate(注解、xml)applicationContext.xml配置
- spring整合hibernate(注解、xml)applicationContext.xml配置
- 数据库设计经验之谈
- 黑马程序员——Java基础---String类和基本数据类型对象包装类
- 贪心+dp hdu5501 The Highest Mark
- 树根据扩展先序遍历建立二叉树及其非递归遍历
- java命令行语句
- spring与hibernate的整合问题—Spring的配置文档applicationContext.xml
- HDU 5503 EarthCup
- 虚析构函数与多态
- maven-surefire-plugin插件
- hihocoder题库1014
- Android 入门:一步一步搭建开发环境
- ZOJ 3777 Problem Arrangement(壮压dp)
- Machine Learning读书笔记
- 解决JSP路径问题的方法(jsp文件开头path, basePath作用)