分享

Spring自动装配

 我是书迷705 2015-04-22

自动装配,官方给出的定义是这样:
Spring IoC容器可以自动装配(autowire)相互协作bean之间的关联关系。因此,如果可能的话,可以自动让Spring通过检查BeanFactory中的内容,来替我们指定bean的协作者(其他被依赖的bean)。由于autowire可以针对单个bean进行设置,因此可以让有些bean使用autowire,有些bean不采用。autowire的方便之处在减少或者消除属性或构造器参数的设置,这样可以给我们的配置文件减减肥

其实,自动装配就是让我们少些几个  <ref ="...">.

我们还是从需求出发.我们假设有4bean.分别是bean2,bean3,bean4,bean5..其中,bean2里面有后面几个

的引用..我只放出来bean2.java.

package com.test.model;
public class Bean2 {

 private Bean3 bean3;

 private Bean4 bean4;
 
 private Bean5 bean5;

 public Bean3 getBean3() {
  return bean3;
 }

 public void setBean3(Bean3 bean3) {
  this.bean3 = bean3;
 }

 public Bean4 getBean4() {
  return bean4;
 }

 public void setBean4(Bean4 bean4) {
  this.bean4 = bean4;
 }

 public Bean5 getBean5() {
  return bean5;
 }

 public void setBean5(Bean5 bean5) {
  this.bean5 = bean5;
 }
}
我们看不用自动装配的写法

<bean id="bean2" class="com.test.model.Bean2">
  <property name="bean3" ref="bean3"/>
  <property name="bean4">
   <ref bean="bean4"/>
  </property> 
  <property name="bean5" ref="bean5"/>
 </bean>

很明显,下面的几个属性设置是很繁琐的..我们假设使用自动装配.我们只需要这样

<bean id="bean2" class="com.test.model.Bean2" />

里面的装配都不用写.

另外:

   模式                        说明 
     no                      
不使用自动装配,必须通过ref元素指定依赖,默认设置。 
    byName                   
根据属性名自动装配。此选项将检查容器并根据名字查找与                
                             
属性完全一致的bean,并将其与属性自动装配。 
    byType                   
如果容器中存在一个与指定属性类型相同的bean,那么将与 
                             
该属性自动装配;如果存在多个该类型bean,那么抛出异 
                             
常,并指出不能使用byType方式进行自动装配;如果没有找 
                             
到相匹配的bean,则什么事都不发生,也可以通过设置 
                              dependency-check="objects"
Spring抛出异常。 
    constructor              
byType方式类似,不同之处在于它应用于构造器参数。如 
                             
果容器中没有找到与构造器参数类型一致的bean,那么抛出 
                             
异常。 
    autodetect               
通过bean类的自省机制(introspection)来决定是使用 
                              constructor
还是byType方式进行自动装配。如果发现默认的 
                              构造器,那么将使用byType方式。

 

  JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。

javaBean自省技术
javaBean 
具有的自省机制可以在不知道javaBean都有哪些属性的情况下,设置他们的值。。

自省机制的核心是反射机制。

javaBean的自省机制主要由Introspector实现,该接口中提供了关键的方法。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多