Spring的核心机制

Spring目的

让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的

(Spring根据这些配置 内部通过反射去动态的组装对象)

*.Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。


Spring工作原理

Spring框架的核心组件是Spring IoC容器(BeanFacory接口或者ApplicationContext接口)和Spring配置文件(或者注解配置信息)。

Spring的基本思想是:把对象之间的依赖关系转移到配置文件(或者注解配置)中,由工厂类(BeanFacory接口)来创建对象。

由容器动态地创建并注入对象,决定所配置对象的创建、管理和销毁。

程序执行过程:

(1)根据业务要求创建实体类或给出接口的实现;

(2)利用所创建的类,在配置文件中配置Bean信息;

(3)创建Spring容器(该容器与配置文件相关联——读取配置信息)

(4)从容器中获取实例对象,由对象调用方法完成所需要的业务处理。


Spring容器和被管理的bean

Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是

BeanFactory的子接口。他们都可以代表Spring容器

Spring容器是生成Bean实例的工厂,并管理Spring中的bean。包括数据源、Hibernate的SessionFactory、事务管理器。


①Spring最基本的接口就是BeanFactory

BeanFactory有很多实现类,通常使用XmlBeanFactory,推荐使用ApplictionContext,它是

BeanFactory的子接口,

ApplictionContext的实现类为

FileSystemXmlApplicationContext 和ClassPathXmlApplicationContext

FileSystemXmlApplicationContext:基于文件系统的XML配置文件创建ApplicationContext;

ClassPathXmlApplicationContext:基于类加载路径下的xml配置文件创建ApplicationContext。


②ApplicationContext的事件机制

ApplicationContext事件机制是基于观察者设计模式实现的。

通过ApplicationEvent类和ApplicationListener接口,

ApplicationEvent:容器事件,必须由ApplicationContext发布;

ApplicationListener:监听器,可有容器内的任何监听器Bean担任。


③容器中bean的作用域

  • singleton:单例模式,在整个Spring IoC容器中,singleton作用域的Bean将只生成一个实例。

  • prototype:每次通过容器的getBean()方法获取prototype作用域的Bean时,都将产生一个新的Bean实例。

  • request:对于一次HTTP请求,request作用域的Bean将只生成一个实例,这意味着,在同一次HTTP请求内,程序每次请求该Bean,得到的总是同一个实例。只有在Web应用中使用Spring时,该作用域才真正有效。

    对于一次HTTP会话,session作用域的Bean将只生成一个实例,这意味着,在同一次HTTP会话内,程序每次请求该Bean,得到的总是同一个实例。只有在Web应用中使用Spring时,该作用域才真正有效。

  • global session:每个全局的HTTP Session对应一个Bean实例。在典型的情况下,仅在使用portlet context的时候有效,同样只在Web应用中有效。

注意:request和sessio

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值