设为首页 加入收藏

TOP

Spring IOC容器(二)
2017-10-12 18:17:21 】 浏览:7469
Tags:Spring IOC 容器
t;...<listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener>...</web-app>

如果是Servlet2.4以前的web容器,那么你要使用一个javax.servlet.Filter的实现:
<web-app>..<filter> <filter-name>requestContextFilter</filter-name> <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class></filter> <filter-mapping> <filter-name>requestContextFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>...</web-app>
接着既可以配置bean的作用域了:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="request"/>

4、session

session作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效(在一个HTTPSession中,一个bean定义对应一个实例,仅限于Web环境)
配置实例:
和request配置实例的前提一样,配置好web启动文件就可以如下配置:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="session"/>

5、global session

在一个全局的HTTPSession中,一个bean定义对应一个实例,仅在基于portlet的Web应用中才有意义,Portlet规范定义了全局Session的概念
配置实例:
和request配置实例的前提一样,配置好web启动文件就可以如下配置:
<bean id="role" class="spring.chapter2.maryGame.Role" scope="global session"/>

(上面的Bean作用域,可以通过<bean>定义的scope属性指定)

Bean的生命周期回调

指定初始化回调方法:

<bean  id = "exampleBean"  class = "com.foo.ExampleBean"  init-method = "init">

</bean>

指定销毁回调方法,仅适用于singleton模式的bean:

<bean  id = "exampleBean"  class = "com.foo.ExampleBean"  destroy-method = "destroy">

</bean>

在顶级的<beans/>元素中的default-init-method属性,可以为容器所有<bean>指定初始化回调方法

<beans  default-init-method = "init">

  <bean id = "exampleBean"  class = "com.foo.ExampleBean"/>

</beans>

在顶级的<beans/>元素中的default-destroy-method属性,可以为容器所有<bean>指定销毁回调方法

<beans  default-destroy-method = "destroy">

  <bean id = "exampleBean"  class = "com.foo.ExampleBean"/>

</beans>

Bean延迟实例化

在ApplicationContext实现的默认行为就是在启动时将所有singleton bean提前进行实例化

如果不想让一个singleton bean在ApplicationContext初始化时被提前实例化,可以使用<bean>元素的lazy-init = "true" 属性改变

一个延迟初始化bean将在第一次被用到时实例化

<bean id = "exampleBean"  lazy-init = "true"  class = "com.foo.ExampleBean"/>

在顶级的<beans/>元素中的default-lazy-init属性,可以为容器所有<bean>指定延迟实例化特性

指定bean依赖关系

当一个bean对另一个bean存在依赖关系时,可以利用<bean>元素的depends-on属性指定

<bean id = "beanOne"  class = "ExampleBean"  depends-on = "manager"/>

<bean id = "manager"  class = "ManagerBean"/>

当一个bean对多个bean存在依赖关系时,depends-on属性可以指定多个bean名,用逗号隔开

<bean id = "beanOne"  class = "ExampleBean"  depends-on = "manager1,manager2"/>

3.容器的IOC应用

IOC概念

IOC全称是Inversion of  Control,被译为控制反转;

IOC是指程序中对象的获取方式发生反转,由最初的new方式创建,转变为由第三方框架创建,注入。第三方框架一般是通过配置方式指定注入哪一个具体实现,从而降低了对象之间的耦合度

IOC按实现方法不同,可以分为依赖注入DI和依赖

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇log4j.properties 配置示例 下一篇【Struts2】工作流程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目