zoukankan      html  css  js  c++  java
  • Spring中Bean的配置

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/5859556.html

    1、Bean的配置一般都在XML文件中进行配置

    2、Bean相关包为:org.springframework.beansorg.springframework.context

    3、springBean管理的实现是依靠大量的反射来实现的。

    4、Bean定义配置

    4.1 Bean标签

      ▶id属性:用于指定Bean的名称,在Bean被依赖时使用,在获取Bean时使用等

      ▶name属性:用于指定Bean的别名

      ▶class属性:用于指定Bean的来源,即创建要创建的Beanclass类(需要全限定名)

      ▶singleton属性:用于指定当前Bean的创建模式,若值为true表示为单例模式,false表示原型模式(prototype

      ▶depends-on属性:用于指定当前Bean的依赖Bean,强制指定的Bean在当前Bean初始化之前先完成初始化

      ▶init-method属性:用于指定当前Bean的初始化方法,在Bean实例创建好后,首先会调用其指定名称的方法

      ▶destory-method属性:用于指定当前Bean的销毁方法,在Bean即将被销毁之前会自动调用该属性指定的方法

      ▶lazy-init属性:用于指定当前Bean的初始化时间,若值为true表示在初次调用时才会自动创建实例并初始化,false表示在IoC容器创建的时候就会完成创建和初始化

      ▶autowire属性:用于指定当前Bean的依赖关系的自动注入方式,其有五个值:

        ▷byName:表示通过id名称来自动匹配;

        ▷byType:表示通过class指定的类型来自动装配;

        ▷constructor:表示使用构造函数的参数进行自动装配(参数的类型匹配);

        ▷autodetect:表示自动进行选择匹配方式,首先进行constructor自动装配,若不存在构造方法则使用byType方式进行自动装配;

        ▷no:表示不适用自动装配。

      ▶dependency-check属性:用于指定Bean的依赖检查模式,检查依赖关系是否完整,与自动装配合用,其有四个值:

        ▷simple:表示针对基本类型、字符串、集合进行依赖检查

        ▷object:表示对引用对象进行依赖检查

        ▷all:表示对基本类型、字符串、集合、引用对象全部进行依赖检查

        ▷none:表示不进行任何依赖检查,默认情况。

      Bean示例:

     1 <?xml version=”1.0”encoding=”utf-8”?> 
     2 <!Doctype beans PUBLIC “-//SPRING//DTD BEAN//EN”
     3 “http://www.springframework.org/dtd/spring-beans.dtd”>
     4 <beans>
     5   <bean id=”helloworld” class=”com.dh.spring.HelloWorld” singleton=”true” depends-on=”date” lazy-init=”false” init-mathod=”init” destory-method=”destory”/>
     6   <bean id=”date” class=”java.util.Date”/>
     7 </beans>

    4.2 property标签

      ▶name属性:用于指定属性的名称,与类中的set方法后方的名称一致

      ▶value属性:用于指定该属性的值,用于指定的值是基本类型、字符串类型

      ▶ref属性:用于指定该属性的值,用于指定的值是引用对象类型(即其他的Bean),ref后面的值为另一个Beanid

      ▶value标签:用于指定属性的值,类型为基本类型、字符串类型,值为标签内的文本内容,可以使用null值将属性的值设置为null

      ▶ref标签:用于指定属性的值,类型为引用对象类型,值为其属性的值,其属性有以下三种:

        ▷local属性:用于指定依赖本地Bean实例,即同一XML文件中定义的Bean

        ▷bean属性:用于指定依赖的Bean实例,可以是不同XML文件中的Bean

        ▷parent属性:用于指定依赖的Bean实例,可以是当前BeanFactoryApplicationContext的父BeanFactoryApplicationContext中的Bean

      以下是针对集合的标签

      ▶list标签:用于声明该依赖对象为一个list集合,其下用valueref标签来指定list中的各值(基本、字符串、对象等)

        ▷value标签:用于指定list集合中的值,指定的值为基本类型、字符串类型,值为文本内容

        ▷ref标签:用于指定list集合中的引用值,指定的值为其他的对象Bean,其用法与之前property标签下的ref标签的用法相同

      ▶set标签:用于声明该依赖对象为一个set集合,其用法与list标签相同。

      ▶map标签:用于声明该依赖对象为一个map集合,其下用entry标签来声明一个键值对

        ▷entry标签:用于声明map集合下的一个键值对,其下用key属性指明键,value/ref标签指明值

          →key属性:用于指明键值对中的键,它一般为字符串

          →value标签:用于指明键值对中的值,类型为基本类型、字符串类型

          →ref标签:用于指明键值对中的值,类型为引用对象类型,即其他的Bean,其用法同之前的ref标签

      map实例1

     1 <bean id=”helloworld” class=”com.dh.spring.HelloWorld”>
     2   <property name=”pname”>
     3     <map>
     4       <entry key=”mkey1”>
     5         <value>mvalue1</value>
     6       </entry>
     7       <entry key=”mkey2”>
     8         <value>mvalue2</value>
     9       </entry>
    10     </map>
    11   </property>
    12 </bean>

      map实例2

    1 <bean id=”helloworld2” class=”com.dh.spring.HelloWorld2”>
    2     <property name=”pname”>
    3       <map>
    4       <entry key=”mkey1”>
    5         <ref bean=”helloworld”/>
    6       </entry>
    7     </map>
    8   </property>
    9 </bean>    

      ▶props标签:用于声明该依赖对象为一个properties集合,其下用prop标签来指定属性的名称及值(键值对)

        ▷prop标签:用于设置集合中的一个键值对

          →key属性:用于指明键值对中的键,一般为字符串

          →文本内容:用于指明键值对中的值,一般为字符串,不用加引号

      props实例:

    1 <bean id=”helloword” class=”com.dh.spring.HelloWorld”>
    2   <property name=”pname”>
    3     <props>
    4       <prop key=”pkey1”>pvalue1</prop>
    5       <prop key=”pkey2”>pvalue2</prop>
    6     </props>
    7   </property>
    8 </bean>

    5、Bean的生命周期

      Bean的生命周期包括Bean的定义,Bean的初始化,Bean的使用,Bean的销毁

      Bean的定义:一般Bean使用XML文件的方式进行定义,定义的时候将Bean之间的依赖关系和属性的赋值都进行了定义

      Bean的初始化:其实Bean的初始化包括Bean的创建和初始化两个方法,Bean的创建和初始化一般是同步进行的,Bean在完成创建后直接就会进行初始化操作,创建的时机与Beanlazy-init属性的设置有关。

      Bean的使用:在web程序运行期间,发生对某一个Bean的调用时,就会使用这个Bean实例,如果使用编码的方式来获取Bean同样也是Bean的使用,Bean的编码使用方式有三种,第一种是使用BeanWarpper,第二种是使用BeanFactory,第三种就是使用ApplicationContext

      Bean的销毁:Bean实例在程序退出的时候会进行销毁,而在销毁之前会自动调用Beandestory-method属性指定名称的方法。

  • 相关阅读:
    Matlab实现bwlabel函数(区域标记)功能
    Matlab实现medfilt2函数功能
    Matlab实现基于频域对二维信号的低通滤波
    Matlab实现基于频域对一维信号利用傅里叶低通滤波平滑
    Matlab实现直方图规定化
    Matlab实现直方图均衡化
    Matlab实现imresize函数功能
    lc279贪心
    lc347 解法
    numpy中的np.mat(1)
  • 原文地址:https://www.cnblogs.com/V1haoge/p/5859556.html
Copyright © 2011-2022 走看看