`

Spring分散配置

阅读更多
web.xml
<!-- 监听Log4j -->
	<listener>
		<listener-class>
			org.springframework.web.util.Log4jConfigListener
		</listener-class>
	</listener>
	<context-param>
		<param-name>log4jConfigLocation</param-name>
		<param-value>WEB-INF/log4j.properties</param-value>
	</context-param>
	<context-param>
		<param-name>webAppRootKey</param-name>
		<param-value>netctoss.root</param-value>
	</context-param>
	 <!-- 监听Spring文件 -->
	<listener>
		<listener-class>
			org.springframework.web.context.ContextLoaderListener
		</listener-class>
	</listener>


 <!-- 在这里import其他的Spring配置文件,那么在web.xml中只监听本文件就可以了 -->
   <import resource="springController.xml" />

	<bean id="propertyPlaceholderConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="order" value="1"/>
		<property name="locations">
			<list>
                  <!-- 
                     当database.properties放在src目录 下就像下面那样写
                     classpath:/database.properties
                   --> 			
				<value> classpath:/com/huanglq/properties/database.properties</value>
			</list>
		</property>
	</bean>
	
	<!-- destroy-method="close"一用完就释放资源 -->
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${db.driver}">
		</property>
		<property name="url" value="${db.url}"></property>
		<property name="username" value="${db.username}"></property>
		<property name="password" value="${db.password}"></property>
	</bean>



spring配置文件把hibernate.cfg.xml整合进来(eg):
  <bean id="sessionFactory"  
        class="org.springframework.orm.hibernate.LocalSessionFactoryBean">  
     <property name="mappingLocations">  
        <value>classpath*:/**/*.hbm.xml</value>  
      </property>  
       <property name="mappingJarLocations">  
            <list>  
             <value>WEB-INF/lib/xxx-core.jar</value>  
            <value>WEB-INF/lib/xxx-report.jar</value>  
          </list>  
    </property>  
  </bean>  


Spring的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"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
default-lazy-init="true">

	<!-- 在这里import其他的Spring配置文件,那么在web.xml中只监听本文件就可以了 -->
	<import resource="springController.xml" />
	<bean id="propertyPlaceholderConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="order" value="1" />
		<property name="locations">
			<list>
				<!-- 
					当database.properties放在src目录 下就像下面那样写
					classpath:/database.properties
				-->
				<value>
					classpath:/com/huanglq/properties/database.properties
				</value>
			</list>
		</property>
	</bean>

	<!-- destroy-method="close"
BasicDataSource提供了close()方法关闭数据源,所以必须设定destroy-method=”close”属性, 以便Spring容器关闭时,数据源能够正常关闭 -->
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${db.driver}">
		</property>
		<property name="url" value="${db.url}"></property>
		<property name="username" value="${db.username}"></property>
		<property name="password" value="${db.password}"></property>
	</bean>

	<!--  
		<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver">
		</property>
		<property name="url" value="jdbc:mysql://127.0.0.1:3306/springtrain"></property>
		<property name="username" value="root"></property>
		<property name="password" value="root"></property>
		</bean>
	-->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.show_sql">true</prop>
			</props>
		</property>
		<!-- 解决过多的POJO -->
		<property name="mappingDirectoryLocations">
			<list>
				<value>classpath:/com/huanglq/model</value>
			</list>
		</property>
	</bean>

	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<!--在这里abstract="true"属性比较有用,他把target属性赋予了代理事务的目标类  -->
	<bean id="baseTransactionProxy"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
		abstract="true">
		<property name="transactionManager" ref="transactionManager" />
		<property name="transactionAttributes">
			<props>
				<prop key="add*">PROPAGATION_REQUIRED</prop>
				<prop key="update*">PROPAGATION_REQUIRED</prop>
				<prop key="modify*">PROPAGATION_REQUIRED</prop>
				<prop key="sel*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
			</props>
		</property>
	</bean>

	<bean id="studentDao" class="com.huanglq.dao.StudentDaoImpl">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<bean id="studentService"
		class="com.huanglq.service.StudentServiceImpl">
		<property name="studentDao" ref="studentDao" />
	</bean>

	<!-- 在DAO级别的代理事务 -->
	<bean id="studentDaoTransactionProxy"
		parent="baseTransactionProxy">
		<property name="target" ref="studentDao" />
	</bean>

	<bean id="courseDao" class="com.huanglq.dao.CourseDaoImpl">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<bean id="courseService"
		class="com.huanglq.service.CourseServiceImpl">
		<property name="studentService" ref="studentService" />
		<property name="courseDao" ref="courseDao" />
	</bean>

	<bean id="courseDaoTransactionProxy"
		parent="baseTransactionProxy">
		<property name="target" ref="courseDao" />
	</bean>

	<bean id="instructorDao"
		class="com.huanglq.dao.InstructorDaoImpl">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<bean id="instructorService"
		class="com.huanglq.service.InstructorServiceImpl">
		<property name="instructorDao" ref="instructorDao" />
	</bean>

	<bean id="instructorDaoTransactionProxy"
		parent="baseTransactionProxy">
		<property name="target" ref="courseDao" />
	</bean>
</beans>

分享到:
评论
2 楼 qsrock 2008-10-16  
mappingJarLocations:指定加载的映射文件在jar文件中 ,
当时也是看书的写的,现在看来好像没有用
具体可参考http://blog.csdn.net/yuansicau/archive/2008/09/03/2874165.aspx
1 楼 songjoyce 2008-09-23  
配置这个有什么作用 <property name="mappingJarLocations">    

相关推荐

    spring加载多个配置文件

    在Spring框架中,加载多个配置文件是常见的需求,特别是在大型项目中,为了保持代码的整洁和模块化,通常会将不同的配置分散到多个文件中。本文将深入探讨如何在Spring中实现这一功能。 首先,Spring提供了多种方式...

    Spring事务配置的五种方式

    本文将详细介绍Spring事务配置的五种方式,以及它们的工作原理和适用场景。 首先,Spring事务管理的核心组件包括DataSource、TransactionManager和代理机制。DataSource通常用于连接数据库,而TransactionManager则...

    spring配置[收集].pdf

    本书旨在整合分散在各种文档中的配置信息,为读者提供一个系统化的Spring配置指南,旨在帮助开发者更有效地理解和使用Spring框架。 Spring框架的核心理念是依赖注入,它改变了Java企业级开发的方式,通过松耦合的...

    Spring事务配置[收集].pdf

    这里我们将深入探讨Spring的事务配置,主要基于提供的资料内容。 首先,Spring事务配置通常涉及三个关键组件: 1. **DataSource**: 数据源是连接到数据库的桥梁,用于获取数据库连接。在Spring中,可以通过`org....

    【狂神说】spring PDF学习总结笔记 Spring5.pdf

    Spring Boot是一个快速开发的脚手架,强调约定优于配置,简化了Spring应用的初始设置。Spring Cloud基于Spring Boot,为构建分布式系统提供了工具集,如服务发现、配置中心、负载均衡等。 IoC(控制反转)是Spring...

    spring菜鸟入门经典实例

    1. 配置文件(如:applicationContext.xml):这是Spring的配置中心,包含了bean的定义、依赖关系和AOP配置。 2. Controller类:负责处理HTTP请求,通常包含@RequestMapping注解来映射URL。 3. Service类:业务逻辑...

    【java框架】Spring(3) -- Spring配置补充(基于Maven项目)(csdn)————程序.pdf

    这样可以将相关联的 Bean 配置分散到各个模块的配置文件中,提高代码的可读性和可维护性。 3. **注解配置细节** - **@Value 注解**:用于注入属性值,可以从属性文件中读取。例如,在 `jdbc.properties` 文件中...

    Spring-in-Action

    2. **面向切面编程(AOP)**:Spring提供了AOP支持,允许开发者创建横切关注点,如日志、事务管理等,从而避免在业务代码中分散这些逻辑。书中的章节将解释如何定义切面、通知类型及其在Spring中的实现。 3. **...

    Spring配置Mysql读写分离.pdf

    在Spring框架中配置MySQL的读写分离是一种常见的优化策略,旨在提高系统的并发处理能力和数据库的可用性。通过读写分离,可以将对数据库的压力分散到不同的服务器上,从而减轻主数据库的压力,保证数据的一致性,...

    跟开涛学spring3

    其次,Spring3引入了AOP(Aspect-Oriented Programming,面向切面编程),这是一种编程范式,用于处理系统中分散的、横切多个类的公共行为,如日志、事务管理等。Spring的AOP支持使用注解定义切面,如@Aspect、@...

    Spring应用开发代码

    在你所拥有的"17"这个压缩包中,可能包含了多个Spring相关的练习项目,比如简单的Spring配置示例、AOP应用、Spring MVC的Web应用、以及Spring与数据库的交互示例等。这些练习可以帮助你逐步掌握Spring的各个关键概念...

    spring多数据源

    当配置了多个数据源时,我们需要为每个数据源创建一个DataSourceTransactionManager实例,并在Spring配置文件中指定对应的Data Source。 2. **AbstractRoutingDataSource**:这是一个抽象的数据源类,它可以根据...

    spring AOP myeclipse 完整代码

    MyEclipse作为强大的Java集成开发环境,提供了方便的Spring配置工具,可以帮助我们轻松地添加和管理Spring的配置文件。 配置Spring AOP主要涉及以下几个步骤: 1. **创建Bean**:在Spring的配置文件(如`...

    基于Spring Boot的Environment源码理解实现分散配置详解

    主要给大家介绍了基于Spring Boot的Environment源码理解实现分散配置的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Spring配置Mysql读写分离[定义].pdf

    Spring配置MySQL读写分离是一种常见的优化策略,用于提高数据库系统的性能和可扩展性。在大型分布式系统中,读写分离可以有效地将高并发的读操作与写操作分摊到不同的数据库服务器上,从而减轻主数据库的压力,确保...

    Spring2.0

    1. **依赖注入(Dependency Injection,DI)**:Spring 2.0进一步完善了DI,使得组件之间的依赖关系可以通过配置文件或注解来管理,降低了代码的耦合度。DI允许开发者在不修改代码的情况下更换组件,增强了软件的可...

    SpringCloud面试专题

    Spring Cloud 是一套微服务解决方案,它基于 Spring Boot 实现,为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态等)...

    Spring事务与Java事务比较

    Spring 支持在 XML 配置文件中使用 `&lt;tx:advice&gt;` 和 `&lt;tx:annotation-driven&gt;` 元素,以及在 Java 配置中使用 `@Transactional` 注解来声明事务。声明式事务管理使得事务管理更加透明,降低了业务代码的复杂性。 ...

    Spring IOC之基于注解的容器配置.docx

    Spring配置中注解比XML更好吗?基于注解的配置的介绍提出的问题是否这种途径比XML更好。简单来说就是视情况而定。 长一点的答案是每一种方法都有自己的长处也不足,而且这个通常取决于开发者决定哪一种策略更适合...

    spring aop jar

    使用这个JAR,你需要确保你的项目已经配置了Spring框架,并且在你的Maven或Gradle构建文件中添加了对Spring AOP的依赖。 总的来说,Spring AOP是一个强大的工具,它可以帮助开发者将关注点分离,提高代码的可重用性...

Global site tag (gtag.js) - Google Analytics