1.Spring配置文件中,尽量采用byName装配方式:(或者采用注解)
<Beans default-autowire="byName" >
.....
</Beans>
2.如果是spring集成的hibernate,在spring配置文件中,引入外部properties文件作为可变配置项,这样维护人员可以修改:
(http://blog.csdn.net/cfy_zybing/archive/2010/11/24/6031244.aspx)
<!-- 引入外部properties文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.property" /> </bean> <!-- 使用properties文件内容 --> <!-- 在spring的数据源配置中,可以采用jdbc.property文件中定义的那些属性: --> <bean id="DataSource" class="com.mchange.v2.c3po.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"><value>${jdbc.driverClassName}</value></property> <property name="jdbcUrl"><value>${jdbc.jdbcUrl}</value></property> <property name="user"><value>${jdbc.user}</value></property> <property name="password"><value>${jdbc.password}</value></property> </bean> 再对hibernate的配置进行设置 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionfactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialet">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> <prop key="hibernate.jdbc.fetch_size">${hibernate.jdbc.fetch_size}</prop> <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop> </props> </property> </bean> 或者把hibernate的配置文件还是放在外部,通过spring把hibernate的文件include进来,这样更干净 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" /> <property name="dataSource" ref="dataSource" /> </bean>
3. hibernate的OrMapping映射文件(*.hbm.xml),和java对象类放在一起,在Spring+hibernate中,加载所有的映射文件
hibernate.cfg.xml里的res.hbm.xml 路径要写全 如:<mapping resource="**/**/res.hbm.xml"/> 在Spring的配置文件中 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="hibernateProperties"> ..... </property> <property name="mappingLocations"> <value>classpath:/com/company/domain/**/maps/*.hbm.xml</value> </property> <property name="dataSource" ref="dataSource" /> </bean> 或者: <property name="mappingLocations"> <list> <value>classpath:/com/company/domain/**/maps/*.hbm.xml</value> .... </list> </property>
4.Struts2的配置文件,每个模块用自己的配置文件:
把各个模块的配置文件,包含在struts.xml文件中: <include file="module1.xml" /> <include file="module2.xml" /> 或者每个模块做成jar,在jar根目录中有struts-plugin.xml文件,struts会自动包含进来的
5. Spring也采用多个文件,自己管自己的;在Web.xml中,对Spring的配置这么写就可以了
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext-*.xml</param-value> </context-param>
有时候,只能用一个配置文件(某些第三方系统集成进Spring,但是不支持多个Spring配置文件),这个时候用一个Spring配置文件,把这些子配置文件import进来:
<import resource="filename" />
这样,还是个人维护个人的配置文件