对于spring配置文件的编写,我想,对于经历过庞大项目的人,都有那种恐惧的心理,太多的配置文件。不过,分模块都是大多数人能想到的方法,但是,怎么分模块,那就是仁者见仁,智者见智了。我的策略是使用import。
基本代码格式如下
web.xml
......
<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>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wangjian5748/archive/2006/09/14/1223455.aspx
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>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wangjian5748/archive/2006/09/14/1223455.aspx
可以仔细看这个文件是怎么使用spring中abstract的方式申明继承关系的。
我看到有不少人采用spring自带的策略,把DAO与service层的配置分开,我认为这种策略不好,因为大多数时候,这两部分都是需要同时变动的,若放在两个文件中的话,那就会增加了每次修改配置文件的时间,而且,不利于重用。
若是结合我的上篇文章(关于spring单元测试的)的策略,那么这种方式就会发挥更大的威力
分享到:
相关推荐
- 为了避免重复定义相同的bean配置,Spring支持一种类似于继承的机制,即通过定义一个抽象bean来作为其他bean的基础模板。例如,创建一个抽象bean `AbstractService`,并在其他具体服务中引用它: ```xml ...
这种方式虽然相比注解方式略显繁琐,但对于大型项目或者需要精细控制AOP配置的情况,仍然是一个很好的选择。通过深入理解和实践,我们可以更好地利用Spring AOP来优化我们的应用程序,提高代码的可读性和可维护性。
- **Spring Boot**:提供了一种简化新Spring应用的初始搭建以及开发者运行时的依赖管理的方式。 - **Spring Cloud**:是基于Spring Boot实现的云应用开发工具包,它提供了在分布式系统(如配置管理、服务发现、断路...
Spring Cloud Stream则关注消息驱动的应用程序,它提供了一种声明式的方式来消费和生产消息,适用于事件驱动的微服务架构。 在实际开发中,Spring Cloud Data Flow是用于数据流和任务管理的工具,它可以管理和部署...
此外,Spring Boot还提供了一种“profile”机制,可以根据不同环境加载不同的配置文件。默认情况下,Spring Boot会寻找以`-`分隔的文件,如`application-dev.properties`(开发环境)或`application-prod.properties...
Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用。而Spring是一个全面的企业级应用开发框架,提供依赖注入、AOP(面向切面编程)以及众多其他功能。Hibernate则是一个强大的ORM(对象关系映射...
2. **会话管理**:Spring Session提供了一种跨服务器共享session的解决方案,这对于多服务器部署的大型应用非常重要。 3. **购物车**:这通常涉及到状态管理,用户添加商品到购物车,修改数量,或者移除商品,这些...
Spring XML配置是Spring框架中的一种常见方式,用于定义和管理应用程序中的bean及其依赖关系。以下是对Spring XML配置的12个技巧的详细说明: 1. 避免使用自动装配:Spring提供了自动装配功能,通过匹配bean属性或...
在第一种配置方式中,每个业务 Bean 都有一个代理。`TransactionProxyFactoryBean` 负责创建事务代理,它通过 AOP(面向切面编程)来实现事务管理。当调用代理方法时,Spring 会自动在方法的开始和结束处插入事务...
标题《spring3零配置注解实现Bean定义》中蕴含的知识点主要包括Spring框架中的Bean定义配置方法的演进,特别是从Spring 2.5到Spring 3版本的过渡过程中,对于注解方式实现Bean定义的支持如何被引入和优化。这种方法...
11. **Spring Cloud Sleuth**:Sleuth提供了一种分布式追踪解决方案,集成Zipkin或ELK Stack,帮助我们跟踪微服务间的调用链路,进行性能分析和问题定位。 12. **Spring Cloud Data Flow**:Data Flow是一个用于...
一般来说,基于XML的`TransactionProxyFactoryBean`适合简单场景,而注解驱动的事务管理则更加直观和方便,对于大型项目或需要精细控制事务的场景,AspectJ切面可能更为合适。 总之,Spring的声明式事务管理使得...
- 在Spring配置中,创建`SqlSessionFactory` bean,然后创建`SqlSessionTemplate` bean,设置`SqlSessionFactory`作为依赖。 - DAO接口和实现类与第一种方式类似,但需要使用`SqlSessionTemplate`来执行SQL语句,...
SpringCloud脚手架项目是一个基于Java和Spring Cloud框架构建的现代化开发平台,旨在提供一套完整的微服务解决方案。这个项目不仅涵盖了基本的后端服务架构,还整合了前端Vue.js技术,实现了前后端分离的设计模式,...
此外,Spring 3.2对自动扫描和组件注册进行了优化,使得在大型项目中配置更简便。 2. AOP(面向切面编程): AOP是Spring框架的一个强大特性,它允许开发者定义“切面”,这些切面可以插入到多个类的方法中,实现...
尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统配置分散至多个文件中成为了一种常见的实践。本文将深入探讨如何在 Spring 中有效地加载多个配置文件,以及这一策略背后的理论依据。 #### 二、为...
在Spring框架中,`PropertyPlaceholderConfigurer`是一种特殊的Bean,它被用来处理Spring配置文件中的占位符(placeholder),并将它们替换为具体的值。这些值通常来自外部的属性文件,如`.properties`或`.xml`等。...
在SSH整合项目中,通常会将Struts 2的Action作为Spring的Bean管理,由Spring负责Action的实例化和依赖注入。同时,Hibernate的SessionFactory和Session对象也会在Spring中配置,使得业务层可以方便地进行数据库操作...
首先,Spring框架的核心特性之一是依赖注入(Dependency Injection,DI),这是Spring解决复杂应用程序管理依赖关系的一种优雅方式。书中会深入解析DI的概念,如何通过XML配置、注解和Java配置来实现,以及它如何...