2.IOC 配置与应用(xml的方式)

1.注入方式

  a)setter(主要)

  b)构造方法(可以忘记)

  c)接口注入(可以忘记)

2.id  vs  name

  bean 标签中可以使用  name 属性 来完成 id 属性的功能,不过习惯用id 

  另外,name 还可以使用特殊字符,但是谁没事会写一些特殊字符 作为 Map的key

3.简单属性的注入

  <property name=… value=….>

4.<bean> 中的 scope 属性

  <bean id="userService" class="com.bjsxt.service.UserService" scope="prototype">

  当容器中的对象被拿出使用时,是否创建新的

  proptotype 每次创建新的对象     singleton 单例 

5.集合注入

  <property name="lists">
    <list>
      <value>1</value>
      <value>2</value>
      <value>3</value>
    </list>
  </property>

6.自动装配

  a) byName    

    <bean id="userService" class="com.bjsxt.service.UserService"  autowire="byName">

    使用了 autowire 属性后,不需要在下面 使用 property 手动指定 注入哪个bean

    会自动去找 这个bean 的set方法,如:在这里找到了 UserService 的 setUserDao这个方法

    拿到这个方法名,去掉 set ,再将首字母小写,得到字符串(userDao),再去看容器中,是否有

    id为 userDao的 bean,自动有的话,将其注入进来

  b) byType

    按照set 方法所接收的参数的类型的来确定 

  c)如果所有的bean都用同一种,可以使用beans的属性:default-autowire

  

7.生命周期

   lazy-init  

  init-method   destory-method

1 <!-- 使用lazy-init 来指定是否在spring容器启动时,就加载这个bean对象,设置为 true 启动就加载,设置为false  用到的时候再加载,有点像hibernate里面的 fetchType -->
2      <!-- 使用 init-method   destroy-method   来指定该bean对象加载和销毁时 调用的 该对象的方法,这也能够确定该对象的生命周期-->
3      <!-- 另外:init-method   destroy-method   不要和  不要和prototype一起用,因为这样使用了,bean对象无法销毁 -->
4   <bean id="userService" class="com.bjsxt.service.UserService" lazy-init="true" init-method="init" destroy-method="destroy">
5       <property name="userDAO" ref="u" />
6   </bean>
原文地址:https://www.cnblogs.com/xuzekun/p/7396115.html