美文网首页
不完全spring学习-2学点spring的黑话之bean

不完全spring学习-2学点spring的黑话之bean

作者: 闲杂人等 | 来源:发表于2020-03-19 16:47 被阅读0次

让spring替你完成对象控制,你需要告诉他:

  1. 如何创建对象
  2. 对象的声明周期
  3. 对象的依赖关系

一些黑话

  1. bean, 即为对象,告诉spring,你需要它控制一个对象
    <bean></bean>
  2. 告诉spring,这个对象应该从哪个类来实例化,由于spring用的是实例化,所以类名是全称
    <bean class="com.yourpackage.YourClass"/>
  3. 可以告诉spring这个对象的一个标识(名字),你会用这个名字可以从spring那召唤出这个对象(容器中获得对象)。
    <bean name="aClass" class="com.yourpackage.YourClass" />
  4. 告诉spring,这个对象的作用域:全局唯一(singletong,这是默认的)、prototype,request,session,global-session.
    <bean name="aClass" class="com.yourpackage.YourClass" scope="prototype"/>
    • singleton:Spring每次都会返回同一个实例
    • prototype :每次需要时Spring会返回一个新的对象
    • request:bean在一个http请求中 仅在web应用中使用
    • session:每一个http对话
    • global-session: 每一个全局http会话
  5. 在spring控制对象的声明周期过程中,告诉spring做些事情
    • 实例化后:init-method <bean name="aClass" class="com.yourpackage.YourClass" scope="prototype" init-method="init"/> init应该在com.yourpackage.YourClass中定义,是一个无参无返回的方法。
    • 销毁后:destory-method: <bean name="aClass" class="com.yourpackage.YourClass" scope="prototype" init-method="init" destory-method="destory"/>destory要求同上
  6. 如果希望spring初始化对象时,对对象的属性进行初始化怎办?
    • 基本类型,String视为基本类型
<bean ......>
  <property name="field_name" value="field_value" />
</baen>
  • 引用类型
<bean ......>
  <property name="field_name" ref="bean_name" />
</baen>
  1. 为构造函数传参:constructor-arg
    参考第6条,只要把property换成constructor-arg即可
  2. 还可注入内部类,集合等,用了再查
  3. 引用类型可以自动注入:byName,byType
<!--不自动注入--!>
<bean name="aClass",class="xx.xx.ClassA">
     <!--需配置以下内容--I>
      <property name="field_of_ref" ref="anotherBeanName" />
</bean>

<!--自动注入--!>
<bean name="aClass"  class="xx.xx.ClassA" autowire="byName" >
     <!--不需要配置property了,根据ClassA中的属性名自动寻找名字和ClassA属性名一致,且类型一致的bean--I> 
</bean>

<!--被引用对象--!>
<bean name="field_of_ref"  class="xx.xx.ClassB" />
  1. 有重复的配置时,spring的bean是可以配置继承的
  2. 配置文件可以引入其他文件。<import resource="classpath:ba06/spring-sudent.xml">

相关文章

网友评论

      本文标题:不完全spring学习-2学点spring的黑话之bean

      本文链接:https://www.haomeiwen.com/subject/nkthyhtx.html