Bean基本简单装配

Spring框架的核心是容器,容易用来管理所有Bean的创建,使用,销毁等工作,Spring容器使用DI来管理组件,DI本质上是通过反射来实现的。Spring提供了多种容器,分为两类 Bean工厂和应用上下文。
Bean工厂是最简单的Spring容器,最常用的的BeanFactory实现是XmlBeanFactory,根据XML文件装载Bean。要创建XmlBeanFactory必须传递Resource实例给构造函数。如 BeanFactory factory = new XmlBeanFactory(new FileSystemResource("c:/factory.xml"));
应用上下文是更加高级的容器,应用比BeanFactory广泛。有几种经常用到:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext,XmlWebApplicationContext.如ApplicationContext context=new ClassPathXmlApplicationContext("factory.xml");
Bean工厂延迟载入Bean,只有getBean()方法调用Bean才被创建,而应用上下文则预先载入所有的Bean,要使用的时候已经准备好了。
一个简单的Bean的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "spring-beans-2.0.dtd">
<beans default-autowire="no">
  <bean id="greetingService"    class="spingTest.GreetService"    init-method="init" destroy-method="destroy" autowire="constructor">
      <property name="greeting"> <value>greeting</value>       </property>        
      <property name="myRef"><ref bean="refName"/>           </property> 
      <property name="aList">
       <list>
          <ref bean="refName"/>  
          <ref bean="greeting"/>           
        </list>       
       </property> 
       <property name="aMap">
     <map>
     <entry key="aaa" value="bbbb"></entry>
     <entry key-ref="greetingService" value-ref="refName"/>
     </map>   
       </property> 
       <property name="aProps">
     <props>
     <prop key="props">PROPS</prop>
     </props>
       </property> 
       <constructor-arg index="1">
      <value>11</value>
       </constructor-arg>
       <constructor-arg index="0">
      <value>add</value>
       </constructor-arg>
    </bean>
   <bean id="refName"    class="spingTest.RefMy">
   </bean>
</beans>
如上:<bean/>元素是Spring中最基本的单元,id就是bean的名字,是向容器申请的名字,class就是你类的路径了。可以通过构造方法注入(constructor-arg,如果有多个构造参数,且类型一样,为防止配置交叉的错误,可以通过index指定是第几个参数,value就是这个构造函数参数的值,ref就是引用另一个bean),也可以通过属性注入(property,就相当于通过setXXX方法设置属性),至于你使用哪种方法注入,没有硬性规定,根据实际情况决定,也可以混合使用。当然也可以装配集合,list,map,set,props,均可以装配ben和普通值,除了props(名称-值的集合,必须都是String)。map中key,value代表键,值都为String;key-ref,value-ref代表键值都为bean引用。

你可能感兴趣的:(Bean基本简单装配)