`
zgzd13575java
  • 浏览: 13981 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

autowire属性

阅读更多
采用的是Spring2.0的xml,在这里,IOC控制反转,我只探讨autowire的四个比较常用的属性

一:系统默认的autiwire="no"

<bean id="show" class="com.zgz008.web.ShowListBean" autowire="no" >  
<property name="showService">
<ref bean="showService"></ref>
</property>
</bean>

proprtty name属性指的是com.zgz008.web.ShowListBean内部反射成set方法生成的,并不是说一定是属性名showService
ref bean指的就是我们的id号啦

二: autowire="byName"


<bean id="show" class="com.zgz008.web.ShowListBean" autowire="byName" />

自动根据applicationContext.xml里面的bean id属性反射成set方法,去查询com.zgz008.web.ShowListBean有没有拥有这个方法
有的话就自动依赖注入

三:autowire="byType"


<bean id="show" class="com.zgz008.web.ShowListBean" autowire="byType" />

只要com.zgz008.web.ShowListBean有一个属性与Spring容器中的属性相匹配,那么就会自动装载进来,调用的是set方法(不用管属性名)

四:autowire="constructor"


<bean id="show" class="com.zgz008.web.ShowListBean" autowire="constructor" >
<constructor-arg index="0" type="com.zgz008.service.IShowService"">
      <ref bean="showServiceOK" />
</constructor-arg>
</bean>

使用的是构造器注入,ref bean指的是id号,只要类型匹配就会自动注入,(不用管属性名)



总的来说,只要你命名规范符合标准,应该不会有什么大问题的

以下内容转载

no 不使用自动装配。必须通过ref元素指定依赖,这是默认设置。由于显式指定协作者可以使配置更灵活、更清晰,因此对于较大的部署配置,推荐采用该设置。而且在某种程度上,它也是系统架构的一种文档形式。

byName 根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为by name,而该bean包含master属性(同时提供setMaster(..)方法),Spring就会查找名为master的bean定义,并用它来装配给master属性。

byType 如果容器中存在一个与指定属性类型相同的bean,那么将与该属性自动装配。如果存在多个该类型的bean,那么将会抛出异常,并指出不能使用byType方式进行自动装配。若没有找到相匹配的bean,则什么事都不发生,属性也不会被设置。如果你不希望这样,那么可以通过设置dependency-check="objects"让Spring抛出异常。 网管论坛bbs_bitsCN_com

constructor 与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。

autodetect 通过bean类的自省机制(introspection)来决定是使用constructor还是byType方式进行自动装配。如果发现默认的构造器,那么将使用byType方式。
分享到:
评论

相关推荐

    spring bean 属性总结

    - **autowire属性**:控制Bean的自动装配策略。有五种模式: - `no`:不自动装配,所有依赖都需手动配置。 - `byName`:根据属性名称自动装配。 - `byType`:根据属性类型自动装配。如果有多个匹配,会报错。 - ...

    软通动力Java笔试题2011.docx

    Spring 简化了 Bean 的配置,提供了自动装配(autowire)机制,根据指定的原则(通过 &lt;Bean&gt; 的 autowire 属性指定)进行 Bean 的自动装配。Spring 本身为 autowire 属性提供了五个选项:no、byName、byType、...

    软通笔试题

    Spring 框架提供了自动装配机制,根据指定的原则(通过的 autowire 属性指定)进行 Bean 的自动装配。Spring 本身为 autowire 属性提供了五个选项:no、byName、byType、constructor 和 autodetect。其中,no 表示不...

    软通动力Java笔试题.pdf

    Spring框架简化了Bean的配置,提供了自动装配机制,根据指定的原则通过 `&lt;Bean&gt;`的autowire属性指定。Spring本身为autowire属性提供了五个选项:no、byName、byType、constructor和autodetect。 J2EE事务 J2EE事务...

    软通动力Java笔试题2011,大家可要把握好机会哦。

    Spring 简化了 Bean 的配置,提供了自动装配(autowire)机制,根据指定的原则(通过的 autowire 属性指定)进行 Bean 的自动装配,Spring 本身为 autowire 属性提供了五个选项:no、byName、byType、constructor、...

    Spring考试试卷(有答案).docx

    15. Bean的autowire属性:Spring的autowire属性可以自动装配Bean,它能够将任何Java对象和Java组件视为Bean进行管理,但不包括EJB组件。 以上内容详细解释了Spring框架中的关键概念,包括AOP、依赖注入、事务管理、...

    软通动力Java笔试题1

    Spring简化了Bean的配置,提供了自动装配(autowire)机制,根据指定的原则(通过的autowire属性指定)进行Bean的自动装配,Spring本身为autowire属性提供了byName、byType、constructor、no五个选项。 Servlet会话...

    配置后的spring讲解

    8. **自动装配**:Spring提供了autowire属性,如`autowire="byName"`或`autowire="byType"`,用于自动匹配并注入Bean的依赖。 9. **工厂方法**:如果希望使用自定义的工厂方法创建Bean,可以设置`factory-bean`和`...

    beanAssemble.rar

    默认情况下,Spring不启用自动装配,但可以通过设置autowire属性(如autowire="byType"或"byName")来开启。 接下来是`bg02:动态工厂Bean`。动态工厂Bean允许我们使用工厂方法来创建对象,而非直接实例化。这为...

    Spring.pdf

    - default:使用默认方式,可以通过在beans标签中使用default-autowire属性来配置全局的自动注入规则。 - no:不使用自动注入,使用依赖注入。 scope属性用于定义Spring bean的作用域,它决定了Spring容器创建对象...

    Spring考试试卷 (2).docx

    15. Spring的autowire属性用于自动装配Bean,它可以按名称(byName)、类型(byType)、构造器(constructor)、注解(autodetect)和默认(no)方式进行装配。选项B表示任何Java对象都可以视为Bean,这是Spring容器的基本行为...

    Spring 总结(1) 自用

    此外,Spring还支持自动装配,通过Autowire属性实现。"byname"根据bean的名称匹配依赖,"byType"根据类型匹配,"constructor"匹配构造器参数类型,"autodetect"会检查bean的属性是否完成了依赖注入,以避免空指针...

    Java框架笔试题(含答案).docx

    本文总结了 Java 框架笔试题中的重要知识点,涵盖了依赖注入、AOP、Bean 的注入、ApplicationContext 接口、事务管理、持久化支持、Spring 配置...Spring 的自动装配可以通过在配置文件中使用 autowire 属性来实现。

    Sring考试试卷有答案.docx

    在 Spring 中,Bean 的 autowire 属性可以设置为 byName、byType、constructor 或 no,用于控制自动装配的方式。dependency-check 属性则用于检查依赖项,可以选择 no、objects 或 simple。 10. **Bean 的生命周期...

    spring常见问题

    Spring框架常见问题解析...Autowire 是 Spring 的自动装配机制,通过指定 autowire 属性,可以让容器为受管 JavaBean 自动注入依赖对象。Autowire 有六种方式:No、byName、byType、constructor、autodetect、default。

    Spring中自动装配的4种方式

    byName 自动装配是指通过设置 property 标签的 autowire 属性为 byName,Spring 将自动寻找一个与该属性名称相同或 id 相同的 Bean,注入进来。例如: ```xml &lt;property name="dataSource" autowire="by...

    spring 帮助文档

    **2.3.1 元素的autowire属性** `autowire`属性允许自动装配bean的依赖关系而无需显式指定。这有助于减少配置文件中的重复代码,提高开发效率。 **2.3.2 基于@Required注解加强协作者管理** `@Required`注解用于...

    spring-3.1.0中文版api帮助文档.pdf

    - **Autowiring策略**:通过元素的autowire属性、@Required、@Autowired或@Inject注解,以及primary属性或@Qualifier注解,Spring能够智能地进行依赖注入,减少了配置的繁琐。 - **资源操控与容器宿主**:Spring...

Global site tag (gtag.js) - Google Analytics