知识大全 Spring Autowire(自动装载)的一次实践[1]

Posted 属性

篇首语:好鼓一打就响,好灯一拔就亮。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring Autowire(自动装载)的一次实践[1]相关的知识,希望对你有一定的参考价值。

Spring Autowire(自动装载)的一次实践[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  缘起

  随着系统中不断的增加需求 功能越来越多了 昨天 看到我项目中的application xml已经超过了 行 还有Acegi和XFire的配置文件 也比较长 所以就想着来分拆和瘦身

  基础

  如果没有记错的话 Spring是从 起 开始支持自动装载的 这并不是鸡肋功能 在Spring 中得到了进一步的改进 到目前为止 Spring共支持以下五种方式的自动装载

  模式 说明

  no 不使用自动装配 必须通过ref元素指定依赖 这是默认设置 由于显式指定协作者可以使配置更灵活 更清晰 因此对于较大的部署配置 推荐采用该设置 而且在某种程度上 它也是系统架构的一种文档形式    byName 根据属性名自动装配 此选项将检查容器并根据名字查找与属性完全一致的bean 并将其与属性自动装配 例如 在bean定义中将autowire设置为by name 而该bean包含master属性(同时提供setMaster( )方法) Spring就会查找名为master的bean定义 并用它来装配给master属性    byType 如果容器中存在一个与指定属性类型相同的bean 那么将与该属性自动装配 如果存在多个该类型的bean 那么将会抛出异常 并指出不能使用byType方式进行自动装配 若没有找到相匹配的bean 则什么事都不发生 属性也不会被设置 如果你不希望这样 那么可以通过设置dependency check= objects 让Spring抛出异常    constructor 与byType的方式类似 不同之处在于它应用于构造器参数 如果在容器中没有找到与构造器参数类型一致的bean 那么将会抛出异常    autodetect 通过bean类的自省机制(introspection)来决定是使用constructor还是byType方式进行自动装配 如果发现默认的构造器 那么将使用byType方式

   步骤

   将application xml分成两个 一个文件里面管理的是系统基本信息的Bean管理 另一个文件是业务信息的Bean管理(当然 如果你觉得还不够的话 可以将其按功能模块进一步拆分)

  拆分后当然需要更改web xml中的配置 如下

    <context param>        <param name>contextConfigLocation</param name>        <param value>classpath:applicationContext* xml classpath:xfire servlet xml</param value>    </context param>

   使用byType的方式 对业务信息部分的Bean进行自动装载 因为我Class中的有些属性可能并不与XML配置中的名称一致 所以想使用这样的方式相对简单 不需要去将属性名和XML的Bean ID一一对应 配置如下

<beans default autowire= byType >

</beans>

  来 启动应用 试试看效果吧 正在我庆幸自己不用去比对名称的时候 系统到如下阶段时停住了

cha138/Article/program/Java/ky/201311/29124

相关参考

知识大全 spring用annotation-autowire配置

  <?xmlversion=encoding=UTF?>  <beansxmlns=  xmlns:xsi=instance  xmlns:p=  xsi:schemaLocati

知识大全 Spring自动代理机制

Spring自动代理机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们一直使用ProxyF

知识大全 Spring的自动装配

Spring的自动装配  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  采用构造函数注入以及set

知识大全 Spring自动装配的学习

Spring自动装配的学习  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在xml配置文件中au

知识大全 Spring与自动调度任务

Spring与自动调度任务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近把以前设想做搜索引

知识大全 spring aop中单独代理和自动代理的设置

  spring的aop机制提供两类方式实现类代理一种是单个代理一种是自动代理  单个代理通过ProxyFactoryBean来实现自动代理通过BeanNameAutoProxyCreator或者De

知识大全 spring 2.0 的事务自动处理

  <aop:config>       <!<aop:advisorid=userManagerTxad

知识大全 Spring3 Mybatis3 freemarker 自动生成对应表

Spring3Mybatis3freemarker自动生成对应表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 hibernate的查询策略有哪些

导航对象图从一个已经装载的对象开始通过像aUsergetAddress()getCity()的属性访问器方法访问相关的对象如果Session是打开的当你导航图时Hibernate会自动装载图的节点当对