`
hy90171
  • 浏览: 59163 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

spring bean属性

 
阅读更多

 属性:

<bean
    id="beanId"

    name="beanName"

    class="beanClass"

    parent="parentBean"

    abstract="true | false"

    singleton="true | false"

    lazy-init="true | false | default"

    autowire="byName | byType | constructor | autodetect | default"

    dependency-check = "none | objects | simple | all | default"

    depends-on="dependsOnBean"

    init-method="method"

    destroy-method="method"

    factory-method="method"

  factory-bean="bean">

</bean>

1.parent

表示该Bean为子Bean,其值指向父Bean,重用父Bean已实现的依赖,如果有很多继承同一个父类的Bean,那么在配置文件中实例那些Bean时候可以省略掉父类已经注入的属性,bean定义继承父bean定义,它可以覆盖父bean的一些值。

<bean id="carnetMgr" parent="txProxyTemplate">
    <property name="target">
        <bean class="ecustoms.carnet.app.biz.CarnetMgr">
            <property name="extensionHistoryDAO" ref="extensionHistoryDAO" />
            <property name="stockTransactionDAO" ref="stockTransactionDAO" />
            <property name="carnetDAO" ref="carnetDAO" />
        </bean>
    </property>
</bean>

2.list, set, map和props元素

分别用来设置类型为List,Set,Map和Propertis的属性值。分别用来为bean传入集合值。 

<bean id="chinese" class="Chinese">
    <property name="friends">
        <list>
            <value>张三</value>
            <value>李四</value>
            <ref>beanID</ref>
            <bean id="" class=""/>
        </list>
    </property>
    <property name="score">
        <map>
            <entry key="数学">
                <value>60</value>
            </entry>
            <entry key="英语">
                <value>70</value>
            </entry>
        </map>
    </property>
    <property name="basicInfo">
        <props>
            <prop key="身高">165</prop>
            <prop key="体重">45kg</prop>
        </props>
    </property>
    <property name="interest">
        <set>
            <value>唱歌</value>
            <value>跳舞</value>
        </set>
    </property>
</bean>

对应的java代码如下:

public class Chinese implements People {    
     private List friends = new ArrayList();    
     private Map score = new HashMap();    
     private Properties basicInfo = new Properties();    
     private Set interest = new HashSet(); 
}   

 3.id

Bean的唯一标识名。它必须是合法的XML ID,在整个XML文档中唯一。

4.name

用来为id创建一个或多个别名。它可以是任意的字母符合。多个别名之间用逗号或空格分开。

5.class

用来定义类的全限定名(包名+类名)。只有子类Bean不用定义该属性。

6.abstract(默认为”false”)

用来定义Bean是否为抽象Bean。它表示这个Bean将不会被实例化,一般用于父类Bean,因为父类Bean主要是供子类Bean继承使用。ture表示抽象Bean,ApplicationContext预初始化时忽略所有抽象Bean定义

7.singleton(默认为“true”)

定义Bean是否是Singleton(单例)。如果设为“true”,则在BeanFactory作用范围内,只维护此Bean的一个实例。如果设为“flase”,Bean将是Prototype(原型)状态,BeanFactory将为每次Bean请求创建一个新的Bean实例。

8.lazy-init(默认为“default”)

用来定义这个Bean是否实现懒初始化。如果为“true”,它将在BeanFactory启动时初始化所有的Singleton Bean。反之,如果为“false”,它只在Bean请求时才开始创建Singleton Bean。

9.autowire(自动装配,默认为“default”)

它定义了Bean的自动装载方式。

      1、“no”:不使用自动装配功能。

      2、“byName”:通过Bean的属性名实现自动装配,根据Bean定义时的“id"属性上指定的别名与Setter名称是否一致进行自动装配。

      3、“byType”:通过Bean的类型实现自动装配,根据PoJo的setXXX()方法所接受的类型判断bean定义文件是否定义有类似的类型对象进行自动装配。

      4、“constructor”:类似于byType,但它是用于构造函数的参数的自动组装,Spring容器比对容器中的Bean实例类型及相关的构造方法上的参数类型是否符合进行自动装配。

      5、“autodetect”:通过Bean类的反省机制(introspection)决定是使用“constructor”还是使用“byType”,先进行constructor自动装配,若缺省,则进行byType自动装配。

 

10.dependency-check(依赖检查,默认为“default”)

它用来确保Bean组件通过JavaBean描述的所以依赖关系都得到满足。在与自动装配功能一起使用时,它特别有用。

1、 none:不进行依赖检查。

2、 objects:只做对象间依赖的检查。

3、 simple:只做原始类型和String类型依赖的检查

4、 all:对所有类型的依赖进行检查。它包括了前面的objects和simple。

 

11.depends-on(依赖对象)

这个Bean在初始化时依赖的对象,这个对象会在这个Bean初始化之前创建。若A depends-on B 意思是实例化A之前必须先实例化B,但A不需要持有B的实例

12.init-method

用来定义Bean的初始化方法,它会在 BeanFactory创建JavaBean实例和属性set注入之后调用。它必须是一个无参数的方法一般用于一些资源的初始化工作。

13.destroy-method

用来定义Bean的销毁方法,它在BeanFactory关闭时调用。同样,它也必须是一个无参数的方法。它只能应用于singleton Bean。

14.factory-method

定义创建该Bean对象的工厂方法。它用于下面的“factory-bean”,表示这个Bean是通过工厂方法创建。此时,“class”属性失效。若是class属性指向工厂类,该工厂类包含的工厂方法须是static

15.factory-bean

定义创建该Bean对象的工厂类。如果使用了“factory-bean”则“class”属性失效。factory-bean属性必须指定一个bean的名字,这个bean一定要在当前的bean工厂或者父bean工厂中,并包含工厂方法。而工厂方法本身通过factory-method属性设置。

 

@Component:标注一个普通的Spring Bean类

@Controller:标注一个控制器组件类

@Service:标注一个业务逻辑组件类

@Repository:标注一个DAO组件类

约定只是将Bean类首字母改为小写,其他部分不变

@Scope指定作用域

@Resource指定配置依赖

@Autowired自动装配,默认byType.一个实例里面配置一个Field,若多个就要用Field[]数组,如果配置集合Field一定要用泛型

@Qualifier精确的自动装配,byName

 

分享到:
评论

相关推荐

    spring bean 属性总结

    ### Spring Bean 属性详解 Spring框架是Java平台上的一个开源框架,主要用来简化企业级应用程序的开发。在Spring中,核心概念之一就是Bean,它是一个简单的Java对象,由Spring IoC容器管理。Spring通过XML配置文件...

    spring bean的生命周期

    - **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...

    spring bean XML配置入门

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

    Spring Bean创建初始化流程.docx

    在`doCreateBean()`方法中,Spring会创建Bean的实例,`createBeanInstance(beanName, mbd, args)`执行Bean实例的创建,而`populateBean(beanName, mbd, instanceWrapper)`则负责填充Bean的属性,将依赖注入到Bean中...

    day38 12-Spring的Bean的属性的注入:名称空间p

    本文将深入探讨Spring中的"名称空间p",这是一种用于配置Bean属性注入的方式,特别是在XML配置文件中。我们将通过源码分析和实际例子来理解其工作原理。 ### Spring Bean属性注入 Bean属性注入主要有两种方式:`...

    普元eos-springbean开发

    ### 普元EOS-SpringBean开发概述 普元EOS平台是一款面向企业级应用的低代码开发平台,它集成了大量的开发工具和技术框架,帮助企业快速构建高质量的应用系统。本文将围绕“普元EOS-SpringBean开发”这一主题展开...

    spring bean life cycle

    3. **初始化**:在属性注入完成后,Spring会执行Bean实现的初始化回调方法,这些方法可以通过实现`InitializingBean`接口的`afterPropertiesSet()`方法或者使用`init-method`属性来指定。此外,还可以通过配置`@...

    实例化Spring bean的两种工厂方法

    在Spring配置文件中,我们需要定义一个工厂bean,然后指定该工厂bean的`factory-bean`属性,以及工厂bean中用于创建目标bean的方法,即`factory-method`属性。下面是一个简单的例子: ```xml &lt;bean id="myFactory...

    Spring Bean 加载顺序 .

    如果Bean定义了初始化回调方法,如`init-method`属性指定的方法,Spring会在初始化后执行这个方法。 9. **Bean的销毁**: 对于Singleton Bean,Spring在容器关闭时会调用`@PreDestroy`注解的方法和实现...

    详解Spring 中如何控制2个bean中的初始化顺序

    需要注意的是,bean 属性的注入是在初始化方法调用之前。因此,在使用 DependsOn 注解时,需要了解 Spring 中 bean 的加载过程,以免出现错误。 其他实现方式 除了上述两种方式外,还有其他方式可以控制 2 个 bean...

    Spring bean 管理

    在Spring中,Bean的管理包含多个方面:创建Bean实例、配置Bean属性、控制Bean的生命周期以及Bean作用域的定义。接下来将详细解释这些知识点。 1. Spring的工厂类: Spring通过工厂模式设计了一系列工厂类来创建对象...

    spring bean的生命周期测试代码

    2. **属性注入**:Spring会根据Bean定义中的依赖注入(DI)信息,将其他Bean的引用或值设置到当前Bean的属性上。这可以通过setter方法、构造器注入、字段注入等方式完成。 3. **初始化**:在所有属性注入完成后,...

    spring运行过程中动态注册bean

    在Spring框架中,动态注册Bean是一项非常实用的功能,它允许我们在应用运行时向Spring容器添加新的Bean定义。这种能力在很多场景下都是极其有用的,比如根据不同的环境配置加载不同的服务实现,或者在运行时根据某些...

    Spring Bean简单应用实例

    在Spring框架中,Bean是核心概念,它代表了应用程序中的对象。Spring通过IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)来管理这些Bean。在这个"Spring Bean简单应用实例"中,我们将...

    Spring的Bean配置

    1. **XML配置**:传统的Spring配置通常使用XML文件,如`beans.xml`,其中包含了Bean的定义,包括类名、初始化方法、属性等。例如: ```xml &lt;bean id="exampleBean" class="com.example.ExampleClass"&gt; ...

    Spring bean初始化及销毁你必须要掌握的回调方法.docx

    在Spring框架中,管理Bean的生命周期是至关重要的。Bean的生命周期包括初始化、正常运行以及销毁三个阶段。在这些阶段,Spring允许开发者定义自定义的行为,以便在特定时刻执行必要的操作。下面将详细介绍如何通过...

    Spring Bean的初始化和销毁实例详解

    Spring Bean的初始化和销毁实例详解 Spring Bean的初始化和销毁是Spring框架中一个非常重要的概念,它们都是Bean生命周期中不可或缺的一部分。在Spring框架中,我们可以使用多种方式来控制Bean的初始化和销毁,以下...

    Spring Bean生命周期.pdf

    属性赋值阶段,Spring容器会将Bean定义中配置的属性值设置到Bean实例上。在这个过程中,容器会考虑属性值的依赖关系,并按需注入其他Bean或设置具体的值。 3. 初始化(Initialization) 初始化阶段是指Bean已经实例...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    - **Spring Framework**:Spring提供了`org.springframework.beans.BeanWrapper`和`org.springframework.beans.PropertyAccessor`接口,简化了对Bean的操作,包括注解的处理。 在实际开发中,遍历Java Bean和利用...

    Spring实例化Bean顺序

    5. **InitializingBean接口**:如果Bean实现了`InitializingBean`接口,Spring会在所有必需的属性设置后调用`afterPropertiesSet()`方法。这个接口的方法调用时机晚于`@PostConstruct`注解的方法,因此实例化顺序会...

Global site tag (gtag.js) - Google Analytics