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组件。

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

  1. 一则spring容器启动死锁问题(DefaultListableBeanFactory/DefaultSingletonBeanRegistry)

    线上发现一个问题,应用在启动时会卡死,log上并没有什么异常输出,初判应该是死锁问题. 抓现场的thread dump文件, 确实是有两个线程有deadlock问题. 线程一 "HSFBiz ...

  2. Spring容器深入(li)

    spring中最常用的控制反转和面向切面编程. 一.IOC IoC(Inversion of Control,控制倒转).对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的 ...

  3. 通过单元测试理解spring容器以及dubbo+zookeeper单元测试异常处理

    一.先说一个结论:单元测试与主项目的spring容器是隔离的,也就是说,单元测试无法访问主项目spring容器,需要自己加载spring容器. 接下来是代码实例,WEB主项目出于运行状态,单元测试中可 ...

  4. 同时使用Junit4的@Parameterized参数化测试和Spring容器

    转载:http://www.jianshu.com/p/d191fe54915f 整合Spring容器 @SpringApplicationConfiguration(classes = Applic ...

  5. Spring 容器

    Spring提供了两个核心接口:BeanFactory和ApplicationContext,其中applicationContext是BeanFactory的子接口. 他们都可代表Spring容器, ...

  6. Spring-Context之四:Spring容器及bean的定义

    Spring框架的核心功能之一就是控制反转(Inversion of Control, IoC),也叫做依赖注入(dependency injection, DI).关于依赖注入的具体内容可以参见Ma ...

  7. spring容器对bean生命周期的管理三中方式

    spring容器对bean的生命周期管理主要在两个时间点:bean的初始化完成(包括属性值被完全注入),bean的销毁(程序结束,或者引用结束)方式一:使用springXML配置中的init-meth ...

  8. spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件)转

    关键字:spring容器加载完毕做一件事情(利用ContextRefreshedEvent事件) 应用场景:很多时候我们想要在某个类加载完毕时干某件事情,但是使用了spring管理对象,我们这个类引用 ...

  9. 整合Servlet到Spring容器

    有时在Spring(3.2.5)项目中,如果使用到Servlet,可能希望Servlet实例作为bean受Spring容器管理,这样也能自动注入其他需要的bean,查了下,发现只针对过滤器提供了代理类 ...

  10. spring容器初始化执行某个方法

    在做web项目开发中,尤其是企业级应用开发的时候,往往会在工程启动的时候做许多的前置检查. 比如检查是否使用了我们组禁止使用的Mysql的group_concat函数,如果使用了项目就不能启动,并指出 ...

随机推荐

  1. PropertyUtilsBean 将bean转成map

    public static Map<String,String> beanToMap(Object bean) { Map<String,String> params =Map ...

  2. 项目常用的几个mysql函数

    1.find_in_set函数 find_in_set(str,strlist); str是一个字符串 strlist是字符串列表--一个有多个子链被“,”分开的字符串 有多种情况: a.str为nu ...

  3. __main__ 变量

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

  4. redis 模拟jedis 操作string类型数据

    一.思路分析 redis数据传输遵循resp协议,只需要按照resp协议并通过socket传递数据到redis服务器即可 resp数据格式: 二.具体实现 package com.ahd.jedis; ...

  5. PHPStorm 远程开发教程

    目的:实现在windows下开发,而所改变代码自动同步到虚拟机 查看虚拟机的 IP地址 配置代码自动同步信息 通过页面上部的选项卡,切换到 Mappings 根路径:指的都是项目代码的根路径 点击一次 ...

  6. 使用switchshow/supportshow命令确认Brocade交换机型号(转载)

    switchshow命令(或supportshow日志)中的switchType是以数字来代表不同的交换机型号,完整的对应表格如下: Switchtype EMC / Brocade名称 / 端口 / ...

  7. puppet之资源

    资源 资源的定义 一个帐号,一个文件,目录,软件包都可以称作是资源,每个资源的定义都具有标题,类型,以及一些列属性. 常见的资源有notify(调试与输出),file(配置文件),package(软件 ...

  8. Codeforces 975 前缀和二分算存活人数 思维离直线速度相同判平行

    A /* Huyyt */ #include <bits/stdc++.h> using namespace std; typedef long long ll; ]; ]; map< ...

  9. 写一个函数,对于一个给定的整数,如果它的二进制模式从正向看和反向看是一样的,那么返回true;

    写一个函数,对于一个给定的整数,如果它的二进制模式从正向看和反向看是一样的,那么返回true:也就是实现这样一个函数boolean isPalindrome(int x); 分析一下,该题目主要是通过 ...

  10. 那些jquery或javascript花招

    js定时器 定时器: 1)反复性定时器:格式:window.setInterval(“fn()”,1000); a)会反复执行 b)第二个参数是以毫秒计算的 2)一次性定时器:格式:window.se ...