• 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>
  • 相关阅读:
    Using F2 to Rename Open Files
    Java 浅析 Thread.join()
    JDK 8
    Automata
    The Hungarian Abhorrence Principle
    Spring 与 MyBatis 的整合
    JDK 8
    面向对象设计原则汇总
    Java Error : type parameters of <T>T cannot be determined during Maven Install
    【源码拾遗】从vue-router看前端路由的两种实现
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7396115.html
Copyright © 2020-2023  润新知