`
leiwuluan
  • 浏览: 705171 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

spring 中自动装配你的Bean

阅读更多

如果你不喜欢自己将你的程序装配起来,你可以尝试让Spring自动装配。默认情况,自动装配是被关闭的。开启它,需要指定你想要使用哪种自动装配方法,给你想要自动装配的bean配置指定autowire属性。

 

Spring支持四种自动装配模式:通过命名、通过类型、构造器或自动检测。

 

通过命名自动装配:Spring尝试将每个属性连接到一个同名的bean上。因此,如果目标bean拥有一个叫做foo的属性而Bean工厂中定义了一个命名为fooBean,那么foo这个Bean会被分配给目标的foo属性。

 

部分配置代码:

<bean  id=”foo”  class=”com.autowire.Foo”  autowire=”byName”/>

 

 

通过类型自动装配:Spring试图将目标bean的每个属性与Bean工厂中对应的同类型的bean连接起来。如果在目标bean中有一个String类型的属性,而在Bean工厂中有String类型的bean,那么Spring会将Stringbean和目标类型的String属性连接起来。如果你在同一个Bean工厂中有多个相同的类型的bean,比如String,那么Spring不能确定使用哪个进行自动装配,而后会抛出异常。

 

部分配置代码:

<bean  id=”foo”  class=”com.autowire.Foo”  autowire=”byType”/>

 

 

构造器自动装配:与通过类型的自动装配类似,只是它通过构造器代替setter进行注入。Spring试图最大数量地匹配构造器中包含的参数。比如,如果你的bean拥有两个构造器,一个接受一个String,另一个接受一个String和一个整数,而你的的Bean工厂中同时有String和整数beanSpring会使用那个接受两个参数的构器。

 

部分配置代码:

<bean  id=”foo”  class=”com.autowire.Foo”  autowire=”constructor”/>

 

 

自动检测自动装配:通知Spring在构造器自动装配和通过类型的自动装配间进行选择。

 

部分配置代码:

<bean  id=”foo”  class=”com.autowire.Foo”  autowire=”autodetect”/>

 

注意:什么时候使用自动装配?

在大部分情况下,关于是否应该使用自动装配这个问题的答案当然是“不!”,虽然自动装配可以在小规模的程序中节省你的时间,但是它会让你养成坏习惯,在大规模的程序中弹性也不够。实际上对bean进行精确的定义并不会消耗你太多的工作,那样你通够从精确的语义,完全自由的属性命名还有规定要管理同一个类型的多少个实例这些地方受益。除了非常小的应用程序,无论如何也要绕开使用自动装配。

 

分享到:
评论

相关推荐

    Spring实现自动装配

    然而,自动装配简化了这个过程,Spring容器会尝试根据类型或名称自动找到合适的依赖并注入到bean中。 在Spring 4中,自动装配主要有以下几种方式: 1. **无注解自动装配(No Annotation Auto-Wiring)**:在XML...

    Spring自动装配解析

    在Spring的XML配置文件中,可以通过`&lt;beans&gt;`标签的`autowire`属性来全局设置自动装配策略,或者在单个`&lt;bean&gt;`标签中通过`autowire`属性指定某一个bean的自动装配方式。 4. 使用注解进行自动装配 Spring 2.5引入了...

    spring自动装配例子

    ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 &lt;bean id="xxx" class="xxx" &gt;&lt;/bean&gt; (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 &lt;bean...

    spring自动扫描和管理Bean的示例

    - **@Autowired**:用于自动装配Bean的依赖。Spring会尝试根据类型或名称找到合适的Bean进行注入。 - **@Qualifier**:配合@Autowired使用,当有多个相同类型的Bean时,可以指定要注入的具体Bean。 - **@Scope**:...

    在Spring中自动装配Bean的属性

    Spring 中自动装配 Bean 的属性 在 Spring 框架中,自动装配 Bean 的属性是非常重要的一部分,今天我们将为大家分享关于在 Spring 中自动装配 Bean 的属性的知识。 首先,Spring 的最基本的能力就是 DI,即依赖...

    Spring中的自动装配有哪些限制?.docx

    在Spring框架中,自动装配(Auto-Wiring)是一种便捷的方式来管理bean之间的依赖关系,它能够自动将所需的bean注入到目标bean中,而无需显式配置。然而,自动装配并非适用于所有场景,它存在一些限制。以下是一些...

    spring自动装配

    - `autodetect`模式:尝试通过`byType`和`byName`来自动检测并装配Bean。 - `default`模式:如果没有指定其他方式,将使用默认的装配策略。 描述中提到的博文链接指向了一个ITeye上的博客文章,可能详细解释了...

    Spring的自动装配源代码

    当Spring容器在配置文件中找不到明确的通过`ref`属性指定的依赖时,会尝试通过类型匹配来查找并装配Bean。如果容器中存在唯一一个与所需类型匹配的Bean,那么这个Bean就会被自动装配到目标Bean的相应属性上。如果有...

    spring自动装配项目struts2

    在这个"spring自动装配项目struts2"中,我们将探讨如何整合Spring的自动装配特性与Struts2框架,以及Hibernate作为持久层框架的使用。 首先,让我们了解Spring的自动装配(Auto-Wiring)。自动装配是Spring框架的...

    spring入门教程之bean的继承与自动装配详解

    本文将深入探讨Spring Bean的继承与自动装配。 首先,让我们了解Bean的基本定义。在Spring配置文件中,`&lt;beans&gt;`元素作为根元素,包含了一系列`&lt;bean&gt;`子元素。每个`&lt;bean&gt;`元素定义了一个Bean实例,它由一个唯一的...

    Spring自动装配Bean实现过程详解

    Spring框架提供了自动装配Bean的功能,该功能可以根据Bean的属性名称或类型自动将Bean装配到其他Bean中,从而简化了Bean的配置工作。在本文中,我们将详细介绍Spring自动装配Bean实现过程,并通过示例代码演示如何...

    Spring 自动装配及其注解

    自动装配通过分析bean定义来确定哪些bean应该被注入到其他bean中,从而减少XML配置文件的复杂性。 二、自动装配的类型 1. **无自动装配**(No Autowiring):默认情况下,Spring不进行任何自动装配。 2. **byName**...

    spring bean XML配置入门

    在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...

    4Spring自动装配——annotation resource方式

    在Spring框架中,自动装配(Auto-Wiring)是一种简化依赖注入(Dependency Injection,DI)配置的方式,它允许Spring容器自动管理Bean之间的依赖关系。本文将深入探讨如何通过注解(Annotation)和`@Resource`来实现...

    Spring的自动装配Bean的三种方式

    Spring框架的自动装配Bean功能是为了简化配置,使得开发者无需在XML配置文件中显式指定Bean间的依赖关系。本文将详细讲解Spring中自动装配Bean的三种主要方式:byName、byType以及constructor。这些方法帮助Spring的...

    Spring学习笔记(9)----让Spring自动扫描和管理Bean

    除了基本的`@Component`家族,Spring还提供了一些高级注解,如`@Scope`用于定义Bean的作用域,`@Lazy`用于延迟初始化Bean,`@Qualifier`用于在多个相同类型的Bean中指定特定的一个。 ### **总结** Spring的自动...

    JSP Spring 自动化装配Bean实例详解

    JSP Spring自动装配Bean实例详解 Spring框架是Java企业级应用开发的事实标准,它提供了全面的编程和配置模型。在Spring中,自动装配(autowiring)功能可以极大地简化Java对象的创建和组装。JSP(Java Server Pages...

    第五章 Spring4 自动装配、方法注入

    例如,如果你有一个名为"dataSource"的bean定义,并且你的另一个bean需要一个DataSource类型的属性,Spring可以通过byType自动装配,将"dataSource"注入到该属性中。这大大减少了手动配置的工作量。 接下来,我们...

    day38 16-Spring的Bean的装配:注解的方式

    以上就是Spring使用注解方式装配Bean的基本过程和关键注解的介绍。通过这种方式,我们可以轻松地管理Bean的生命周期,实现依赖注入,以及对Bean的其他配置,极大地提高了代码的可维护性和灵活性。在实际项目中,结合...

    Java注解机制之Spring自动装配实现原理详解

    例如,使用@AttachAnnotation注解来标记某个方法,然后使用反射机制来获取注解信息,并根据注解信息来自动装配Bean对象。 Java注解机制之Spring自动装配实现原理详解是指Spring框架中使用Java注解机制来实现自动...

Global site tag (gtag.js) - Google Analytics