Spring容器的基本使用

1)如何将一个Bean组件交给Spring容器

  方法:在applicationContext.xml中添加以下定义

  <bean id = “标识符” class = “Bean组件类型”></bean>

2)如何获取Spring容器对象
  ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");

  利用context.getBean(“标识符”)方法获取容器中的Bean对象。

3)如何控制对象创建的模式

  Spring中的Bean默认支持两种模式:singleton 和 prototype。

  UserDAO userDAO = (UserDAO) context.getBean("UserDAOID");

  UserDAO userDAO1 = (UserDAO) context.getBean("UserDAOID");

  System.out.println(userDAO == userDAO1);  ----------->>>>  true

  即:默认模式是单例模式

  在Bean 里追加 scope = “prototype”  原型模式  ------>>>false

  以后的话,应用在Web 程序中(前提),通过扩展,还可以使用 request、session等值,那么一个request(session)就创建一个Bean。

4) Bean对象的创建时机

  Singleton模式的Bean组件是在容器实例化时创建;prototype是在调用getBean()方法时创建。

  singleton模式也可以利用<bean>元素的lazy-init = “true”(延迟实例化)将对象创建工作推迟到getBean()方法。

  如果想把容器当中所有的单例Bean组件都给推迟,则需要在根目录那追加属性,他里面有个default-lazy-init = “true”  。  一般还是根据默认的,在容器实例化时创建比较好。

5) 为Bean对象指定初始化和销毁方法

  可以利用<bean>元素的init-method 属性,指定初始化方法;利用destroy-method 属性指定销毁方法。

  指定的初始化方法是在构造方法调用后自动执行。(构造方法只要调用一次,这个方法肯定调用一次,单例模式初始化只调用一次)
  指定的销毁方法是在容器close时触发,而且只适用于singleton组件。

原文地址:https://www.cnblogs.com/qzhc/p/11252861.html

时间: 2024-10-07 11:43:08

Spring容器的基本使用的相关文章

8 -- 深入使用Spring -- 7...1 启动Spring 容器

8.7.1 启动Spring容器 对于使用Spring的Web应用,无须手动创建Spring容器,而是通过配置文件声明式地创建Spring容器.因此,在Web应用中创建Spring容器有如下两种方式: ⊙ 直接在web.xml文件中配置创建Spring容器 ⊙ 利用第三方MVC框架的扩展点,创建Spring容器.

监听器如何获取Spring配置文件(加载生成Spring容器)

Spring容器是生成Bean的工厂,我们在做项目的时候,会用到监听器去获取spring的配置文件,然后从中拿出我们需要的bean出来,比如做网站首页,假设商品的后台业务逻辑都做好了,我们需要创建一个监听器,在项目启动时将首页的数据查询出来放到application里,即在监听器里调用后台商品业务逻辑的方法,也就是说我们需要在监听器里获取Spring中配置的相应的bean.先把监听器创建出来: 1. 创建InitDataListener 创建一个监听器InitDataListener继承Serv

spring容器中bean的初始化

当我们在spring容器中添加一个bean时,如果没有指明它的scope属性,则默认是singleton,也就是单例的. 例如先声明一个bean: public class People { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public String get

Spring学习2—Spring容器

一.Spring容器接口关系 容器是Spring框架的核心,Spring容器就是一个巨大的工厂.Spring容器使用Ioc(控制反转(Inversion of Control )管理所有组成应用系统的组件. Spring容器会使用XML解析器读取改属性值,并利用反射来创建该实现类的实例. Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口.它们都可以代表Spring容器.Spring容

Spring 容器

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

Spring容器中Bean的生命周期

日出日落,春去秋来,花随流水,北雁南飞,世间万物皆有生死轮回.从调用XML中的Bean配置信息,到应用到具体实例中,再到销毁,Bean也有属于它的生命周期. 人类大脑对图像的认知能力永远高于文字,因此,闲言少叙,书归正传,上图先: 步骤很多,切莫惊慌,我们可以把上面的步骤归纳如下: 1-2:创建实例: 现在假设spring就是个容器,而配置文件中配置的bean属性才是我们真正需要的东西.创建实例就是说,我把配置文件中的bean信息取出来化作一个真正的bean并放到容器中. 3-4:注入依赖关系:

Spring 容器里的bean初始化回调方法研究(一)

@Author xiejun @Since 2015/10/24 感慨一下,曾经某内的讲师说spring bean的创建讲三天三夜也说不完,这种空话听的耳朵 起茧了,却还是不停地被人repeat,究其原因,o(︶︿︶)o 唉确实有的研究. **** 米字符号中是业务剥离 业务介绍: 系统a需要从另一个系统b批量获取到单号,然后存入数据库,当到使用时,a系统将单号与绑定信息回传给b系统. 在这个业务中可以把获取和存入数据库做成一个单独的服务,在后台线程中自动运行.介绍一下实现: 在容器初始化级别的

Spring容器装饰者模式应用之实现业务类与服务类自由组合的解决方案

在任何一个项目中都不可或缺的存在两种bean,一种是实现系统核心功能的bean,我们称之为业务类,另外一种是与系统核心业务无关但同时又提供十分重要服务bean,我们称之为服务类.业务类的bean根据每个系统自身核心功能的不同可以有任意多个,但是服务类的种类在各个系统之间的差异却并不是很大.在系统中经常用到的服务有以下几种,权限服务,日志服务,缓存服务,事务服务以及预警服务等.在整个系统的不断进化过程中,服务类与业务类的关系也不断的发生着变化,由当初垂直模式变为横切模式,这也是编程思想不断演化过程

spring容器启动原理分析1

在项目的web.xml中配置 1 <listener> 2 <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 3 </listener> 此配置为spring容器加载入口,因为其javax.servlet.ServletContextListener接口. 下面代码为ServletContextListener的源码: public i

Spring框架笔记(四)——Spring容器的属性配置详解的六个专题

在spring IOC容器的配置文件applicationContext.xml里,有一些配置细节值得一提.我们将一些问题归结为以下几个专题. 专题一:字面值问题 配置的bean节点中的值,我们提出一个概念--字面值. 字面值:可用字符串表示的值. 字面值可以通过 <value> 元素标签或 value 属性进行注入. 基本数据类型及其封装类.String 等类型都可以采取字面值注入的方式 若字面值中包含特殊字符,可以使用 <![CDATA[]]> 把字面值包裹起来. 例如:(本文