`
XTU_xiaoxin
  • 浏览: 239912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对于大型项目中spring的一种配置方法

阅读更多
对于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单元测试的)的策略,那么这种方式就会发挥更大的威力
分享到:
评论

相关推荐

    spring配置文件:整理总结Spring中XML配

    - 为了避免重复定义相同的bean配置,Spring支持一种类似于继承的机制,即通过定义一个抽象bean来作为其他bean的基础模板。例如,创建一个抽象bean `AbstractService`,并在其他具体服务中引用它: ```xml ...

    使用Spring配置文件实现AOP

    这种方式虽然相比注解方式略显繁琐,但对于大型项目或者需要精细控制AOP配置的情况,仍然是一个很好的选择。通过深入理解和实践,我们可以更好地利用Spring AOP来优化我们的应用程序,提高代码的可读性和可维护性。

    普通javaweb项目调用springCloud接口(超级实用,很详细)

    - **Spring Boot**:提供了一种简化新Spring应用的初始搭建以及开发者运行时的依赖管理的方式。 - **Spring Cloud**:是基于Spring Boot实现的云应用开发工具包,它提供了在分布式系统(如配置管理、服务发现、断路...

    Spring Cloud实战 _springcloud实战_springcloud_

    Spring Cloud Stream则关注消息驱动的应用程序,它提供了一种声明式的方式来消费和生产消息,适用于事件驱动的微服务架构。 在实际开发中,Spring Cloud Data Flow是用于数据流和任务管理的工具,它可以管理和部署...

    spring加载多个配置文件

    此外,Spring Boot还提供了一种“profile”机制,可以根据不同环境加载不同的配置文件。默认情况下,Spring Boot会寻找以`-`分隔的文件,如`application-dev.properties`(开发环境)或`application-prod.properties...

    memcache也spring,hibernate的配置

    Memcached是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用。而Spring是一个全面的企业级应用开发框架,提供依赖注入、AOP(面向切面编程)以及众多其他功能。Hibernate则是一个强大的ORM(对象关系映射...

    spring实现的网上书店

    2. **会话管理**:Spring Session提供了一种跨服务器共享session的解决方案,这对于多服务器部署的大型应用非常重要。 3. **购物车**:这通常涉及到状态管理,用户添加商品到购物车,修改数量,或者移除商品,这些...

    Spring XML配置的12个技巧

    Spring XML配置是Spring框架中的一种常见方式,用于定义和管理应用程序中的bean及其依赖关系。以下是对Spring XML配置的12个技巧的详细说明: 1. 避免使用自动装配:Spring提供了自动装配功能,通过匹配bean属性或...

    Spring事务配置的五种方式

    在第一种配置方式中,每个业务 Bean 都有一个代理。`TransactionProxyFactoryBean` 负责创建事务代理,它通过 AOP(面向切面编程)来实现事务管理。当调用代理方法时,Spring 会自动在方法的开始和结束处插入事务...

    spring3零配置注解实现Bean定义

    标题《spring3零配置注解实现Bean定义》中蕴含的知识点主要包括Spring框架中的Bean定义配置方法的演进,特别是从Spring 2.5到Spring 3版本的过渡过程中,对于注解方式实现Bean定义的支持如何被引入和优化。这种方法...

    03Spring Cloud项目实战微服务整合spring boot视频教程课件

    11. **Spring Cloud Sleuth**:Sleuth提供了一种分布式追踪解决方案,集成Zipkin或ELK Stack,帮助我们跟踪微服务间的调用链路,进行性能分析和问题定位。 12. **Spring Cloud Data Flow**:Data Flow是一个用于...

    Spring中的四种声明式事务的配置

    一般来说,基于XML的`TransactionProxyFactoryBean`适合简单场景,而注解驱动的事务管理则更加直观和方便,对于大型项目或需要精细控制事务的场景,AspectJ切面可能更为合适。 总之,Spring的声明式事务管理使得...

    spring与mybatis三种整合方法

    - 在Spring配置中,创建`SqlSessionFactory` bean,然后创建`SqlSessionTemplate` bean,设置`SqlSessionFactory`作为依赖。 - DAO接口和实现类与第一种方式类似,但需要使用`SqlSessionTemplate`来执行SQL语句,...

    springcloud脚手架项目

    SpringCloud脚手架项目是一个基于Java和Spring Cloud框架构建的现代化开发平台,旨在提供一套完整的微服务解决方案。这个项目不仅涵盖了基本的后端服务架构,还整合了前端Vue.js技术,实现了前后端分离的设计模式,...

    Spring3.2包和配置文件

    此外,Spring 3.2对自动扫描和组件注册进行了优化,使得在大型项目中配置更简便。 2. AOP(面向切面编程): AOP是Spring框架的一个强大特性,它允许开发者定义“切面”,这些切面可以插入到多个类的方法中,实现...

    Spring 加载多个配置文件

    尤其在构建大型应用时,为了提高代码的可读性和可维护性,将系统配置分散至多个文件中成为了一种常见的实践。本文将深入探讨如何在 Spring 中有效地加载多个配置文件,以及这一策略背后的理论依据。 #### 二、为...

    关于spring系统中多系统的配置

    在Spring框架中,`PropertyPlaceholderConfigurer`是一种特殊的Bean,它被用来处理Spring配置文件中的占位符(placeholder),并将它们替换为具体的值。这些值通常来自外部的属性文件,如`.properties`或`.xml`等。...

    SSH(Struts+Spring+Hibernate)结合项目简单实例

    在SSH整合项目中,通常会将Struts 2的Action作为Spring的Bean管理,由Spring负责Action的实例化和依赖注入。同时,Hibernate的SessionFactory和Session对象也会在Spring中配置,使得业务层可以方便地进行数据库操作...

    Spring 揭秘 全面 深入了解Spring

    首先,Spring框架的核心特性之一是依赖注入(Dependency Injection,DI),这是Spring解决复杂应用程序管理依赖关系的一种优雅方式。书中会深入解析DI的概念,如何通过XML配置、注解和Java配置来实现,以及它如何...

Global site tag (gtag.js) - Google Analytics