zoukankan      html  css  js  c++  java
  • Spring(一)

      Spring容器

      Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并管理容器中的Bean。Bean是Spring管理的基本单位,在基于Spring的JavaEE应用中,所有的组件都被当成Bean处理,包括数据源、Hibernate的SessionFactory、事务管理器等。

      应用中的所有组件,都处于Spring的管理下,都被Spring以Bean的方式管理,Spring负责创建Bean实例,并管理其生命周期。Spring里的Bean是非常广义的概念,任何的Java对象、Java组件都被当成Bean处理,甚至这些组件并不是标准的JavaBean。

      Spring容器负责创建Bean实例,所以需要知道每个Bean的实现类,Java程序面向接口编程,无须关心Bean实例的实现类:但Spring容器必须能精确知道每个Bean实例的实现类,因此Spring配置文件必须精确配置Bean实例的实现类。

      BeanFactory接口包含如下几个基本方法。

      1.boolean containBean(String name):判断Spring容器是否包含id为name的Bean实例。

      2.<T>T getBeans(Class<T> requiredType):获取Spring容器中属于requiredType类型的、唯一Bean实例

      3.Object getBean(String name):返回容器id为name的Bean实例

      4.<T>T getBean(String name,Class requiredType):返回容器中id为name,并且类型为requiredType的Bean。

      5.Class<?> getType(String name):返回容器中指定Bean的类型

      Resource接口是Spring提供的资源访问接口,通过使用该接口,Spring能以简单、透明的方式访问磁盘、类路径以及网络上的资源。

      ApplicationContext使用:

      ApplicationContext允许以声明方式操作容器,无须手动创建它。可利用如ContextLoader的支持类,在Web应用启动时自动创建ContextLoader。当然,也可以采用编程方式创建ApplicationContext。

      除了BeanFactory支持的功能外,ApplicationContext还有如下额外的功能:

      1.ApplicationContext继承MessageSource接口,因此提供国际化支持。

      2.资源访问,比如URL和文件。

      3.事件机制

      4.载入多个配置文件

      5.以声明式的方式启动、并创建Spring容器

       Application Context的事件机制:

      ApplicationContext的事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationContext的事件处理。如果容器中有一个ApplicationListener Bean,每当ApplicationContext发布ApplicationEvent是,ApplicationListener Bean将自动被触发。

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

      ApplicationListener:监听器,可由容器中任何监听器Bean担任。

       

  • 相关阅读:
    前端历险记
    Pandas中空值的判断方法,包括数值型、字符串型、时间类型等
    【MySQL】explicit_defaults_for_timestamp 参数详解
    python并发编程--线程---从菜鸟到老鸟(一)
    远程jupyter+pycharm配置 (一)之安装与使用技巧
    airflow--Error: Already running on PID 22603 (or pid file '/home/rdev/airflow/airflow-webserver.pid' is stale)
    数仓调度研究-总论
    pandas实现hive的lag和lead函数 以及 first_value和last_value函数
    iOS开发小技巧--修改按钮内部图片和文字之间的间距(xib)
    iOS开发中的错误整理,关于用绑定Tag取控件的注意事项,有时候不绑定也是个错!
  • 原文地址:https://www.cnblogs.com/miffy/p/4981434.html
Copyright © 2011-2022 走看看