原文:http://blog.csdn.net/wangjian5748/article/details/1223455
对于spring配置文件的编写,我想,对于经历过庞大项目的人,都有那种恐惧的心理,太多的配置文件。不过,分模块都是大多数人能想到的方法,但是,怎么分模块,那就是仁者见仁,智者见智了。我的策略是使用import。
基本代码格式如下
web.xml
基本代码格式如下
web.xml
......
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-config/applicationContext.xml
</param-value>
</context-param>
......
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-config/applicationContext.xml
</param-value>
</context-param>
......
web.xml文件中只需制定一个文件
在/WEB-INF/spring-config/目录下包含了所有spring配置文件,包括一个总配置文件,以及各个模块的配置文件
applicationContext.xml
<?xml version="1.0" encoding="gb2312"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="CTIContext.xml" />
<import resource="customerContext.xml" />
<import resource="customerServingContext.xml" />
<import resource="manageContext.xml" />
<import resource="routineContext.xml" />
<import resource="systemContext.xml" />
...........
包括数据源,以及事务的基本配置
...........
这时所有DAO的基类,各个模块的DAO都配置成继承这个类,就省去了在配置sessionFactory的麻烦
<!-- Base DAO -->
<bean id="baseDAO" abstract="true"
class="com.mycompany.myproject.framework.BaseDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
</beans>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="CTIContext.xml" />
<import resource="customerContext.xml" />
<import resource="customerServingContext.xml" />
<import resource="manageContext.xml" />
<import resource="routineContext.xml" />
<import resource="systemContext.xml" />
...........
包括数据源,以及事务的基本配置
...........
这时所有DAO的基类,各个模块的DAO都配置成继承这个类,就省去了在配置sessionFactory的麻烦
<!-- Base DAO -->
<bean id="baseDAO" abstract="true"
class="com.mycompany.myproject.framework.BaseDAOImpl">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
</beans>
applicationContext.xml文件中使用import的方式导入有模块配置文件,以后若有新模块的加入,那就可以简单修改这个文件了
system模块配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- DAO -->
<bean id="userDAO" parent="baseDAO"
class="com.mycompany.myproject.module.system.dao.UserDAOImpl">
<constructor-arg>
<value>com.mycompany.myproject.domain.system.User</value>
</constructor-arg>
</bean>
<bean id="agentDAO" parent="baseDAO"
class="com.mycompany.myproject.module.system.dao.AgentDAOImpl">
<constructor-arg>
<value>com.mycompany.myproject.domain.system.Agent</value>
</constructor-arg>
</bean>
<bean id="agentGroupDAO" parent="baseDAO"
class="com.mycompany.myproject.module.system.dao.AgentGroupDAOImpl">
<constructor-arg>
<value>
com.mycompany.myproject.domain.system.AgentGroup
</value>
</constructor-arg>
</bean>
<!-- Service -->
<bean id="userService" parent="baseTransactionProxy">
<property name="target">
<bean
class="com.mycompany.myproject.module.system.service.UserServiceImpl">
<property name="userDAO" ref="userDAO" />
</bean>
</property>
</bean>
</beans>
可以仔细看这个文件是怎么使用spring中abstract的方式申明继承关系的。<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- DAO -->
<bean id="userDAO" parent="baseDAO"
class="com.mycompany.myproject.module.system.dao.UserDAOImpl">
<constructor-arg>
<value>com.mycompany.myproject.domain.system.User</value>
</constructor-arg>
</bean>
<bean id="agentDAO" parent="baseDAO"
class="com.mycompany.myproject.module.system.dao.AgentDAOImpl">
<constructor-arg>
<value>com.mycompany.myproject.domain.system.Agent</value>
</constructor-arg>
</bean>
<bean id="agentGroupDAO" parent="baseDAO"
class="com.mycompany.myproject.module.system.dao.AgentGroupDAOImpl">
<constructor-arg>
<value>
com.mycompany.myproject.domain.system.AgentGroup
</value>
</constructor-arg>
</bean>
<!-- Service -->
<bean id="userService" parent="baseTransactionProxy">
<property name="target">
<bean
class="com.mycompany.myproject.module.system.service.UserServiceImpl">
<property name="userDAO" ref="userDAO" />
</bean>
</property>
</bean>
</beans>
我看到有不少人采用spring自带的策略,把DAO与service层的配置分开,我认为这种策略不好,因为大多数时候,这两部分都是需要同时变动的,若放在两个文件中的话,那就会增加了每次修改配置文件的时间,而且,不利于重用。
若是结合我的上篇文章(关于spring单元测试的)的策略,那么这种方式就会发挥更大的威力
相关推荐
下面是对Spring配置文件的详细介绍。 首先,Spring配置文件通常是以`.xml`为扩展名的文件,例如`beans.xml`。这些文件存储在项目的`src/main/resources`目录下,以便在运行时被自动加载。Spring容器...
### Spring配置文件:整理与总结Spring中XML配置的最佳实践 #### 概述 Spring框架作为一个强大的Java应用框架,在企业级应用开发中占据了重要的地位。它为普通的Java对象(Plain Old Java Objects, POJOs)提供了...
"Spring配置文件spring-context.zip"包含了Spring框架中的上下文配置,这是Spring管理对象及服务的核心。 `applicationContext.xml`是Spring应用上下文的主配置文件,它定义了bean的声明、bean之间的依赖关系以及...
- 使用`spring.config.import`属性可以导入其他配置文件,这在处理多模块项目时非常有用。 6. **使用Profile进行条件配置** - 利用Spring的Profile功能,根据运行环境选择不同的配置。 - 可以通过`spring....
在 Spring 配置文件中,属性的定义可以简化为单个标签。例如,以下代码: ```xml <value>fooValue ``` 可以简化为: ```xml ``` 同样,引用 Bean 的定义也可以简化: ```xml ``` 可以简化为: ```xml...
首先,我们需要理解Spring配置文件的作用。在早期的Spring版本中,所有的bean定义、依赖注入以及其他配置都存储在如`bsappConfig.xml`, `spring-config.xml`, `webapp-config.xml`等这样的XML文件中。这些文件通常...
**Spring2 整合 DWR:将DWR配置融入Spring配置文件** Direct Web Remoting (DWR) 是一个开源的JavaScript库,它允许在浏览器和服务器之间进行实时、安全的双向通信,使得Web应用程序能够拥有类似桌面应用的交互性。...
#### 二、Spring配置文件基础知识 在Spring框架中,配置文件是整个系统的核心组成部分之一。它定义了Spring容器中的各种Bean及其之间的关系。Spring支持多种类型的配置方式,其中XML配置文件是最常见的一种形式。...
**步骤3:创建Spring配置文件** 1. 在项目的src目录下,新建一个名为`applicationContext.xml`的XML文件,这是Spring的主要配置文件。 **步骤4:配置Bean** 在`applicationContext.xml`中,定义Bean的基本结构。...
下面我们将深入探讨Spring配置文件的相关知识点。 1. **XML配置文件**:Spring最初主要通过XML文件进行配置,这些文件通常以`applicationContext.xml`为名,位于项目的`src/main/resources`目录下。XML配置文件包含...
在Spring 3.0版本中,引入了许多改进和新特性,包括对注解更广泛的支持,这使得配置文件更加简洁且易于维护。 首先,让我们关注Spring 3.0的配置文件。在Spring中,XML配置文件通常位于`applicationContext.xml`或...
接着,我们需要创建一个Ehcache配置文件(ehcache.xml),定义缓存策略和缓存区域。例如: ```xml xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> timeToIdleSeconds="120" ...
8. 使用`<import>`引入其他配置:当配置文件变得庞大时,可以将相关bean分组到单独的XML文件中,然后使用`<import>`标签导入这些文件,保持配置结构清晰。 9. 利用`<alias>`创建别名:为bean创建别名可以提供多个...
在实际开发中,我们还需要考虑如何整合其他Spring项目,如Spring MVC用于构建Web应用,Spring Data用于数据库操作,以及Spring Boot用于简化Spring应用的初始搭建和运行过程。理解并熟练掌握Spring框架的配置,将对...
总的来说,Spring Boot的`@ConfigurationProperties`机制极大地简化了配置文件的使用,使得我们可以更专注于业务逻辑而不是配置管理。通过这种方法,我们可以确保代码与配置的解耦,提高代码的可维护性和可测试性。
这种情况下,可以通过`ContextLoaderPlugIn`插件来指定Spring配置文件的位置。 ```xml className="org.springframework.web.struts.ContextLoaderPlugIn"> value="/WEB-INF/applicationContext*.xml"/> ``...
Spring Boot是Spring家族中的一个新兴成员,旨在简化Spring应用程序的开发过程。它不仅继承了Spring框架的强大功能,还通过一系列创新的方法极大地减少了开发者在搭建和配置Spring应用时所需的时间和精力。 ### ...
这里,`ClassPathXmlApplicationContext`用于加载XML配置文件,然后通过`getBean`方法获取并使用bean。 Spring还提供了大量的模块,如数据访问/集成、Web、测试等,以满足不同需求。例如,Spring Data支持简化...
import 可以用来引入其他配置文件,简化了配置文件的管理。 12. 使用 namespace 来简化配置文件 namespace 可以用来简化配置文件,避免了冗长的 XML 配置。 通过掌握这些技巧,你可以提高 Spring XML 配置文件的...
一个基本的Spring配置文件通常包含bean定义,它们描述了要创建的对象以及这些对象的属性。例如: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...