java详解Spring的配置文件

本文介绍了一个使用Spring框架整合Hibernate的示例配置,包括数据源、SessionFactory、HibernateTemplate及事务管理等核心组件的设置方法。

<?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:context="http://www.springframework.org/schema/context"
 xmlns:aop="http://www.springframework.org/schema/aop"
 xmlns:tx="http://www.springframework.org/schema/tx"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
 <context:annotation-config />
 <context:component-scan base-package="com.test" />

 <!--
  <bean id="dataSource"
  class="org.apache.commons.dbcp.BasicDataSource"
  destroy-method="close">
  
  
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/spring" />
  <property name="username" value="root" />
  <property name="password" value="bjsxt" />
  </bean>
 -->
    <!--
                                  使用.property档案的形式依赖注入一些动态属性
                                它的作用是一个资源属性的配置器,能够将BeanFactory的里定义的内容放在一个以.propertis后缀的文件中
   
    -->
 <bean
  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">
   <value>classpath:jdbc.properties</value>
  </property>
 </bean>

 <bean id="dataSource" destroy-method="close"
  class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName"
   value="${jdbc.driverClassName}" />
  <property name="url" value="${jdbc.url}" />
  <property name="username" value="${jdbc.username}" />
  <property name="password" value="${jdbc.password}" />
 </bean>
 
 <!-- 把数据源注入给Session工厂 -->

     <bean id="sessionFactory"
  class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
  
  <!-- 引用你自己Spring配置的数据库连接池-->
  
  <property name="dataSource" ref="dataSource" />
  <!--
  <property name="annotatedClasses">
   <list>
    <value>com.bjsxt.model.User</value>
    <value>com.bjsxt.model.Log</value>
   </list>
  </property>
   -->
  
    <!-- 对应的实体bean-->
   <property name="packagesToScan">
   <list>
    <value>com.test.register.model</value>
   </list>
  </property>
  
   <!-- hibernate的属性配置 -->
   <!-- 原来在hibernate.cfg.xml 都可以在这里配置-->
  <property name="hibernateProperties">
   <props>
    <prop key="hibernate.dialect">
     org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.show_sql">true</prop>
   </props>
  </property>
 </bean>
 
 
 <!--    hibernate封装的模版类
                         把Session工厂注入给hibernateTemplate
         hibernateTemplate提供了很多方便的方法,在执行时自动建立 HibernateCallback 对象,例如:load()、get()、save、delete()等方法。
 -->
 
 <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
  <property name="sessionFactory" ref="sessionFactory"></property>
 </bean>
   
    <!-- 事务管理器 -->
   
 <bean id="txManager"
  class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="sessionFactory" ref="sessionFactory" />
 </bean>
   
     <!-- 切面 -->
   
 <aop:config>
  <aop:pointcut id="bussinessService"
   expression="execution(public * com.test.register.service.*.*(..))" />
  <aop:advisor pointcut-ref="bussinessService"
   advice-ref="txAdvice" />
 </aop:config>
   
     <!-- 事务的通知 -->
   
 <tx:advice id="txAdvice" transaction-manager="txManager">
 
     <!-- 事务的属性 -->
  <tx:attributes>
  
      <!-- 事务的具体执行方法 -->
   <tx:method name="exists" read-only="true" />
   <tx:method name="add*" propagation="REQUIRED"/>
  </tx:attributes>
 </tx:advice>

</beans>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值