`
blues1021
  • 浏览: 141037 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

Spring 2.*有注释的配置文件中各层配置详解

    博客分类:
  • SSH
 
阅读更多

<?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.5.xsd">
    
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <property name="configLocation"        <!--1.数据源层-->
            value="classpath:hibernate.cfg.xml">
<!-- 使用了注释将数据源连接上,并生成了对象sessionFactory -->
        </property>
    </bean>
    
    
    <!-- 公司注册DAO-->
    <bean id="bspcorpdao" class="com.bsp.dao.BspCorpDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 用户注册DAO-->
    <bean id="bspuserdao" class="com.bsp.dao.BspUserDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 认证公司DAO-->
    <bean id="bspcorpspldao" class="com.bsp.dao.BspCorpSplDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 联系人DAO-->
    <bean id="bspmysplcontactdao"
        class="com.bsp.dao.BspMySplContactDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 公告信息DAO-->
    <bean id="bspmessagedao" class="com.bsp.dao.BspMessageDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 公告信息DAO-->
    <bean id="dao" class="com.bsp.action.REG_CORP_ADMIN1Action">
        <property name="managerfactory">  <!--3.DAO操作数据层-->

         
<ref local="managerfactory" /> <!--1.使用了数据源类对象。-->
                   <!-- ?where's managerfactory ,2.此为包是所有务逻辑的管理器,业务逻辑又使用了dao类-->

        </property>
    </bean>
    <!-- 询价单DAO-->
    <bean id="bspinqdao" class="com.bsp.dao.BspInqDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 询价单涉及部件DAO-->
    <bean id="bspinqpartsdao" class="com.bsp.dao.BspInqPartsDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 供应商收到询价记录DAO-->
    <bean id="bspinqspldao" class="com.bsp.dao.BspInqSplDAOImpl">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    
    
<!-- 账户事务逻辑层注入DAO层组件 -->
    <bean id="accountmanager" class="com.bsp.service.AccountManagerImpl">
        <property name="bspuserdao">   <!-- use LoginAction DAO -->
            <ref local="bspuserdao" />
        </property>
        <property name="bspcorpdao">
            <ref local="bspcorpdao" />
        </property>
        <property name="bspcorpspldao">
            <ref local="bspcorpspldao" />
        </property>
        <property name="bspmysplcontactdao">
            <ref local="bspmysplcontactdao" />
        </property>
    </bean>
    <bean id="messagemanager" class="com.bsp.service.MessageManagerImpl">
        <property name="bspmessagedao">
            <ref local="bspmessagedao" />
        </property>
    </bean>
    <bean id="inqmanager" class="com.bsp.service.InqManagerImpl">
        <property name="bspinqdao">
            <ref local="bspinqdao" />
        </property>
        <property name="bspinqpartsdao">
            <ref local="bspinqpartsdao" />
        </property>
        <property name="bspinqspldao">
            <ref local="bspinqspldao" />                                                 
        </property>
    </bean>                                    <!--3.特定业务逻辑层-->
 
<!--1.具体业务类使用了dao对象;2.定义了统一管理他们的管理类,注入业务业务逻辑类对象-->
    
   <!-- 工厂服务层注入事务逻辑层组件 -->
    <bean id="managerfactory" class="com.bsp.service.ManagerFactory">
        <property name="accountmanager">
            <ref local="accountmanager" />
        </property>
        <property name="messagemanager">
            <ref local="messagemanager" />
        </property>
        <property name="inqmanager">
            <ref local="inqmanager" />
        </property>
    </bean>
                                                    <!--2.数据持久的事务管理层-->
<!--1.定义事务管理器,使用数据源对象 2.配置事务拦截器,注入了管理器对象,并定义DML事务传播属性-->
 <!--3.定义BeanNameAutoProxyCreator,为指定的dao类自动添加事务拦截器-->


     <!-- 事务管理器 -->
    <bean id="transactionManager"            
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <!-- 配置事务拦截器-->
    <bean id="transactionInterceptor"
        class="org.springframework.transaction.interceptor.TransactionInterceptor">
        <!-- 事务拦截器bean 需要依赖注入一个事务管理器-->
        <property name="transactionManager">
            <ref local="transactionManager" />
        </property>
        <property name="transactionAttributes">
            <!-- 下面定义事务传播属性-->
            <props>
                <prop key="save">PROPAGATION_REQUIRED</prop>
                <prop key="dele*">PROPAGATION_REQUIRED</prop>
                <prop key="find*">PROPAGATION_REQUIRED</prop>
                <prop key="query">PROPAGATION_REQUIRED</prop>
                <prop key="valid">PROPAGATION_REQUIRED</prop>
            </props>
       </property>
    </bean>
    
    <!--定义BeanNameAutoProxyCreator ,该bean 是个bean 后处理器,无须被引用,因此
        没有id 属性
        这个bean 后处理器,根据事务拦截器为目标bean 自动创建事务代理-->
    <bean
        class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
        <!--指定对满足哪些bean name 的bean 自动生成业务代理-->
        <property name="beanNames">
            <!-- 下面是所有需要自动创建事务代理的bean-->
            <list>
                <value>bspcorpdao</value>
                <value>bspuserdao</value>
                <value>bspcorpspldao</value>
                <value>bspmysplcontactdao</value>
                <value>bspmessagedao</value>
                <value>bspinqdao</value>
                <value>bspinqpartsdao</value>
                <value>bspinqspldao</value>
            </list>
            <!--  此处可增加其他需要自动创建事务代理的bean-->
        </property>
        <!--下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
        <property name="interceptorNames">
            <list>
                <value>transactionInterceptor</value>
                <!-- 此处可增加其他新的工nterceptor-->
            </list>
        </property>
    </bean>
        
                       <!--4.action页面控制层-->  
 
<!-- 1.使用了统一的managerfactory对象实现统一接口 -->
  <!-- why use that's name标识,上面name 是为了注释中的namespace下的Action value下注入对象处理页面控制 -->

    
   <!-- Struts动作控件器Bean设置 -->
    <!-- 用户登录验证,注意,Spring2.0单实例模式的设置改成了scope,而在2.0以前是singleton-->
    <bean name="logonAction" class="com.bsp.action.LogonAction"
        scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!-- 公司及管理员注册 -->
    <bean name="/MyCountManager/REG_CORP_ADMIN1" id="UserIsReg"
        class="com.bsp.action.REG_CORP_ADMIN1Action" scope="prototype"><!-- why use that's name标识 -->
        <property name="managerfactory">           <!-- 上面name 是为了注释中的namespace下的Action value下注入对象处理页面控制 -->
            <ref local="managerfactory" />
        </property>
    </bean>
    <!-- 普通用户注册 -->
    <bean name="/MyCountManager/REG_CORP_USER"
        class="com.bsp.action.REG_CORP_USERAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!-- 用户注册 -->
    <bean name="/MyCountManager/BSP_User_Reg" id="BSPUserReg"  
        class="com.bsp.action.BSP_User_RegAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!-- 用户找回密码-->
    <bean name="BSP_User_GetPass"
        class="com.bsp.action.BSP_User_GetPassAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!--显示己注册的公司信息-->
    <bean name="USERREG"
        class="com.bsp.action.USERREGAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!--显示己认证公司信息-->
    <bean name="/MyOrderParts/BUYCERSPL"
        class="com.bsp.action.BUY_CER_SPLAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!--显示联系人信息-->
    <bean name="/MyOrderParts/BUYSPLLIST"
        class="com.bsp.action.BUY_SPL_LISTAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!--公告板管理-->
    <bean name="/MessageBoard/bspMessage"
        class="com.bsp.action.BspMessageAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!--询价管理-->
    <bean name="/MyOrderParts/BUYINQEDIT" id="BUYINQEDIT"  
        class="com.bsp.action.BUY_INQ_EDITAction" scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
    <!--收到询价管理-->
    <bean name="/MySaleparts/SALERECINQLIST"
        class="com.bsp.action.SALE_REC_INQ_LISTAction"
        scope="prototype">
        <property name="managerfactory">
            <ref local="managerfactory" />
        </property>
    </bean>
</beans>

在有注释的Action类中如下:
@Namespace("/MyCountManager")
public class REG_CORP_ADMIN1Action extends BaseAction {
    private static final long serialVersionUID = 1L;
    REG_CORP_ADMIN1VO regcorpadmin;//管理员注册VO
    public void setRegcorpadmin(REG_CORP_ADMIN1VO regcorpadmin) {
        this.regcorpadmin = regcorpadmin;
    }
    public REG_CORP_ADMIN1VO getRegcorpadmin() {
        return this.regcorpadmin;
    }
    public String UserIsReg(String uid) {//判断用户是否已注册,供DWR调用
        if (this.managerfactory.getAccountmanager().findByUserId(uid) != null) {
            return "yes";
        }
        return "no";
    }
    public String CorpIsReg(String cid) {//判断企业是否已注册,供DWR调用
        if (this.managerfactory.getAccountmanager().findByCorpId(cid) != null) {
            return "yes";
        }
        return "no";
    }
  
  @Action(value = "REG_CORP_ADMIN1",
results = { @Result(name = "input", location = "/MyCountManager/REG_CORP_ADMIN1.jsp") })

    public String execute() {..........}
}
       <!--5.客户表现层--->
       <!--略,因为spring配置文件中没有-->

分享到:
评论

相关推荐

    spring源码中英文注释

    这个压缩包文件中的"spring源码 中英文注释"为开发者提供了一个深入理解Spring框架内部工作原理的机会。通过阅读源码和注释,我们可以更清晰地了解Spring如何管理依赖注入、AOP(面向切面编程)、事务管理、上下文...

    spring-framework-5.1.x.zip

    DI使得对象之间的依赖关系可以通过配置文件或注解来声明,而AOP则允许开发者在不修改原有代码的情况下添加新的功能。 2. **Spring MVC**:用于构建Web应用程序,通过Model-View-Controller模式简化了请求处理和视图...

    spring3.x注解

    Spring 3.x 注解应用详解 Spring 3.x 框架引入了依赖注入的注解,改变了传统的 XML 配置方式,提供了一种更加灵活和方便的依赖配置方式。下面对 Spring 3.x 的注解应用进行详细的介绍。 一、属性装配 在 Spring ...

    【SpringBoot】二、SpringBoot中配置文件详解.pdf

    在SpringBoot中,配置文件是管理和维护应用配置的重要组成部分。本篇文章将详细解析SpringBoot中的配置文件,重点讲解YML格式的配置。 1. **配置文件格式** SpringBoot 支持两种配置文件格式:`application....

    spring-framework-5.0.2.RELEASE-中文注释版-终极完美版.rar

    《Spring框架5.0.2.RELEASE中文注释版详解》 Spring框架是Java开发中的一个核心组件,尤其在企业级应用中广泛使用。本文将深入解析Spring框架5.0.2.RELEASE版本,该版本包含了详尽的中文注释,便于开发者理解和学习...

    Java EE 编码规范.docx

    4. **Spring配置文件** - XML配置: `applicationContext.xml` 5. **JSP文件** - 视图模板: `WEB-INF/views/user.jsp` #### 七、应用命名总结 1. **Java类**: 采用名词形式,每个单词首字母大写。 2. **字段**: ...

    毕业设计:基于springboot的小型图书销售系统.zip

    同时,良好的文档和代码注释也是必不可少的,有助于团队协作和后期维护。 综上所述,这个基于SpringBoot的小型图书销售系统展示了如何利用SpringBoot的特性快速构建一个高效、可扩展的Web应用。通过学习这个项目,...

    spring配置文件详解,每一步都含有注释

    spring配置文件详解,交你如何理解spring,熟练运用spring

    Spring 配置文件详解.doc

    Spring 配置文件详解 Spring 框架中的配置文件是项目的核心组件之一,用于定义和管理应用程序中的 Bean 对象。配置文件通常以 XML 文件形式存在,用于描述 Bean 对象的定义、关系和依赖关系。在本文中,我们将详细...

    Spring Mybatis Sharding-JDBC demo

    ### Spring Mybatis Sharding-JDBC 示例详解 #### 一、Sharding-JDBC 概述 在分布式系统架构中,随着业务量的增长,单个数据库往往难以承受巨大的读写压力,因此需要采用数据库分片(Sharding)技术来提高系统的可...

    sturts2+spring2.5+hibernate3.5+c3p0+log4j整合示例项目

    1. **配置文件**:如struts.xml、spring-config.xml、hibernate.cfg.xml等,分别定义Struts2、Spring和Hibernate的配置。 2. **模型类(Entities)**:对应数据库中的表,实现Hibernate的注解或XML映射文件。 3. **...

    spring2.5+Hibernian3.2+struts2.6

    在本文档中,我们将详细探讨如何构建一个基于注释配置的SSH2应用,避免传统的XML配置,提升开发效率。 首先,我们来了解SSH2框架的核心组成部分: 1. **Struts2**:作为MVC(模型-视图-控制器)框架,负责处理HTTP...

    Spring Boot整合swagger的使用方法详解教程.docx

    1. **添加依赖**:在 pom.xml 文件中添加 Swagger 相关的依赖,版本号为 2.9.2: ```xml &lt;groupId&gt;io.springfox &lt;artifactId&gt;springfox-swagger2 &lt;version&gt;2.9.2 &lt;groupId&gt;io.springfox &lt;artifactId&gt;...

    MyEclipse快捷键

    18. **Ctrl+Shift+/**:在Java代码中添加块注释`/* */`,在JSP文件中则是`&lt;!--~--&gt;`。 19. **Ctrl+Shift+\**:取消块注释。 20. **Ctrl+Shift+T**:打开Open Type对话框,可以快速查找并打开类文件。 21. **Ctrl+...

    hibernate配置文件元素详解.txt

    ### Hibernate配置文件元素详解 #### 一、概述 在SSH(Spring+Struts+Hibernate)框架中,Hibernate作为持久层框架扮演着非常重要的角色。它能够实现对象关系映射(ORM),将Java对象映射到数据库表上。为了正确地...

    使用 Spring 2_5 注释驱动的 IoC 功能.mht

    **Spring 2.5 注释驱动的 IoC 功能详解** Spring 框架自 2.5 版本开始引入了对注解的强大支持,极大地简化了依赖注入(Dependency Injection,简称 DI)的配置过程。注解驱动的 IoC(Inverse of Control,控制反转...

    computerPDF (5).pdf

    - **Spring配置文件**: 定义Bean, 配置事务管理 9. **测试与部署**: - 运行测试确保功能正常 - 将数据库对象导出为SQL文件 - 提交项目代码及数据库文件 #### 五、注意事项 1. **界面美观**: 确保界面布局合理,...

Global site tag (gtag.js) - Google Analytics