Spring框架

2.1.5 ConfigurableApplicationContext

  • 是ApplicationContext的子接口,包含一些扩展方法
  • refresh()和close()让ApplicationContext具有启动、关闭和刷新上下文的能力。

 

2.1.6 WebApplicationContext

  • 专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作

 

2.2 通过类型获取bean

  • 从IOC容器中获取bean时,除了通过id值获取,还可以通过bean的类型获取。但如果同一个类型的bean在XML文件中配置了多个,则获取时会抛出异常,所以同一个类型的bean在容器中必须是唯一的。

HelloWorld helloWorld = cxt.getBean(HelloWorld. class);

 

  • 或者可以使用另外一个重载的方法,同时指定bean的id值和类型

HelloWorld helloWorld = cxt.getBean(“helloWorld”,HelloWorld. class);

 

2.3 给bean的属性赋值

2.3.1 依赖注入的方式

1. 通过bean的setXxx()方法赋值

Hello World中使用的就是这种方式

2. 通过bean的构造器赋值

  • Spring自动匹配合适的构造器

 

     <bean id="book" class="com.atguigu.spring.bean.Book" >

           <constructor-arg value= "10010"/>

           <constructor-arg value= "Book01"/>

           <constructor-arg value= "Author01"/>

           <constructor-arg value= "20.2"/>

     </bean >

  • 通过索引值指定参数位置

     <bean id="book" class="com.atguigu.spring.bean.Book" >

           <constructor-arg value= "10010" index ="0"/>

           <constructor-arg value= "Book01" index ="1"/>

           <constructor-arg value= "Author01" index ="2"/>

           <constructor-arg value= "20.2" index ="3"/>

     </bean >

 

  • 通过类型区分重载的构造器

<bean id="book" class="com.atguigu.spring.bean.Book" >

      <constructor-arg value= "10010" index ="0" type="java.lang.Integer" />

      <constructor-arg value= "Book01" index ="1" type="java.lang.String" />

      <constructor-arg value= "Author01" index ="2" type="java.lang.String" />

      <constructor-arg value= "20.2" index ="3" type="java.lang.Double" />

</bean >