Spring框架——bean自动装配

来源:互联网 发布:网络监控安装教程 编辑:程序博客网 时间:2024/05/21 19:50

自动装配类型:


1.byName:
寻找和属性名相同的bean,如果找不到,则装配不上。
2.byType:
寻找和属性类型相同的bean,如果找不到,则装配不上,如果找到多个,抛异常。
3.constructor:
查找和bean的构造参数一致的一个或多个bean,如果找不到或找到多个,抛异常。按照参数的类型装配  
4.autodetect: 
(3)和(2)之间选一个方式。不确定性的处理与(3)和(2)一致。
5.defualt : 
这个需要在<beans defualt-autorwire=“指定” />;
当你在<beans >指定了 default-atuowrite后, 所有的bean的 默认的autowire就是 指定的装配方法;
如果没有在<beans defualt-autorwire=“指定” /> 没有  defualt-autorwire=“指定” ,则默认是defualt-autorwire=”no”
6.no : 
不自动装配,这是autowrite的默认值.

byName使用实例:

1、基本信息
包名:com.bean.autowire,包下3个类+beans.xml:
类一:Master.java  (主人类,定义一些变量)
类二:Dog.java    (宠物狗类)
类三:App.java      (测试类)
beans.xml      (配置文件)

Dog.java中代码:

public class Dog {private String name;private int age;各个变量的set/get方法,省略... }
Master.java中代码:

public class Master {private String name;private Dog dog;各个变量的set/get方法,省略... }
beans.xml中代码:

<!-- 配置一个master对象 --><bean id="master" class="com.bean.autowire.Master" autowire="byName"><property name="name"><value>张三</value></property></bean><!-- 配置一个dog对象 --><bean id="dog" class="com.bean.autowire.Dog"><property name="name" value="小黄"/><property name="age" value="4"/></bean>
App.java中代码:

public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("com/bean/autowire/beans.xml");Master ma=(Master)ac.getBean("master");System.out.println(ma.getName()+" : "+ma.getDog().getName());}
运行结果:



0 0