Bean相关
Bean容器初始化:

本地文件是绝对路径,classpath是相对路径。例子如下:

Bean配置项:
常用Bean的配置项:
(1)id :在整个IOC容器中,这个bean的唯一标识
(2)class :具体要实例化的某一类,与id对应
(3)scope :bean的作用域
(4)constructor-arg :构造器的参数
(5)properties :某个类的属性
(6)autowiring mode :自动装配模式
(7)lazy-initialization mode :懒加载模式
(8)initialization/destruction method :初始化和销毁方法
从bean容器中要得到某一个实例,有两种方式,一种是通过id获取,一种是通过类型,也就是class获取。
Bean的作用域:

图解:
一个Bean容器:也就是在一个context中,而不是在两个context中去比较实例化对象。
singleton :默认模式
prototype :每次请求获取对象,容器都会创建一个新的实例返回,当不再使用这个对象时,自动被垃圾回收器回收,destroy不生效。
global session :portlet主要用于应用的集成,例如,有OA系统,有HR系统,有财务系统,在一个企业内部,通常不会每个系统都去分别登录,而是做一个port,在这个port里,会把每个系统常用的功能都列在里面,这个port会和所有的系统做单点登录,登录这个port后,可以点击其中任意一个系统都可以登录,也就是在不同的系统中的所拥有的不同的session的作用范围。
判断是否是同一个实例的方法,查看hashCode,测试方法可如下:

详细解析singleton:

Bean的生命周期:
Bean的生命周期:
(1)定义:也就是xml配置文件中配置的bean
(2)初始化:也就是IOC容器在加载的时候,初始化,生成bean的实例
(3)使用:开发中使用某一个bean的实例
(4)销毁:在bean容器停止的时候,销毁这个容器创建的所有实例
针对某一个bean的方法:
初始化的两种方式:
(1)实现org.springframework.beans.factory.InitializingBean接口,覆盖afterPropertiesSet方法
(2)配置init-method
销毁的两种方式:
(1)实现org.springframework.beans.factory.DisposableBean接口,覆盖destroy方法
(2)配置destroy-method
(2)以配置的方式实现,xml配置如下:

具体bean实现:

(1)实现接口的方式,xml正常配置即可,不用配置init和destroy,只需要在具体bean实现中实现相关接口即可,相关代码如下:


配置全局默认初始化、销毁方法:
xml配置文件如下:

具体bean的实现:

总结:
当同时配置以上三种初始化和销毁方式时,实现接口的初始化方法要最先执行,其次是内部配置的初始化方式,然而全局默认的配置方式并不会执行,也就是会被覆盖。而当配置全局默认的配饰方式时,bean具体实现中可以不用实现相对应的初始化和销毁方法,而内配配置的初始化方式,其初始化和销毁方法不能省去。
Aware接口:
spring中提供了一些以aware结尾的接口,实现了aware接口的bean在被初始化之后,可以获取相应资源,所谓资源指以aware结尾的接口,例如beanNameAware,它可获取的相关资源就是beanName相关的;
通过aware接口,可以对spring相应资源进行操作(需慎重,因为获取到的资源可能是IOC容器中非常核心的内容,例如得到了ApplicationContext,执行了它的destroy方法);
为对spring进行简单的扩展提供了方便的入口;
举例:
ApplicationContextAware:它会向实现了这个接口的bean提供ApplicationContext,并且实现了这个接口的bean必须配置到spring的配置文件中,并且由spring的容器去加载
BeanNameAware:它会提供有关BeanName定义的内容
ApplicationEventPublisherAware:用于事件的发布
BeanClassLoaderAware:找到相关的类加载器
Bean的自动装配---xml配置autowire实现:
前面介绍了Spring注入的两种方式:设值注入和构造器注入。
这里利用Bean的自动装配可以省略配置文件中的很多细节。

具体配置文件三种方式可如下进行:

而其具体的bean的实现跟正常情况下一致即可。
Bean相关的更多相关文章
- Spring Bean相关配置
Bean相关配置 1.名称与标识 id 使用了约束中的唯一约束.里面不能出现特殊字符的 name 没有使用约束中的唯一约束.里面可以出现特殊字符. 设置对象的生命周期方法 init-method Be ...
- 依赖配置中心实现注有@ConfigurationProperties的bean相关属性刷新
配置中心是什么 配置中心,通过key=value的形式存储环境变量.配置中心的属性做了修改,项目中可以通过配置中心的依赖(sdk)立即感知到.需要做的就是如何在属性发生变化时,改变带有@Configu ...
- Java Spring Bean相关配置
1.Bean配置信息组成部分: (1)Bean实现类 (2)Bean的属性信息 (3)Bean的依赖关系 (4)Bean的行为配置 2.配置方式: (1)XML配置 (2)注解配置 (3)Java类配 ...
- Spring bean相关
Spring中指定Bean的作用于的方式 以下四种为例: 单例(默认,可以不用特殊表明) @Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON) ...
- Spring(2) --Bean相关
你对Spring中的bean了解吗?都有哪些作用域(Scope)? Spring 官方文档对 bean 的解释是: In Spring, the objects that form the backb ...
- Spring8:一些常用的Spring Bean扩展接口
前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格 ...
- struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明
一.目标 1.搭建传统的ssh开发环境,并成功运行(插入.查询) 2.了解c3p0连接池相关配置 3.了解验证hibernate的二级缓存,并验证 4.了解spring事物配置,并验证 5.了解spr ...
- Spring工厂方式创建Bean实例
创建Bean实例的方式: 1) 通过构造器(有参或无参) 方式: <bean id="" class=""/> 2) 通过静态工厂方法 方式: &l ...
- Spring读书笔记——bean创建(下)
有关Spring加载bean系列,今天这是最后一篇了,主要接上篇对于从Spring容器中获取Bean的一些细节实现的补充. <Spring读书笔记--bean加载>--Spring如何加载 ...
随机推荐
- 05-Mysql数据库----补充内容
数据库命名规则: 数据库命名规则: 可以由字母.数字.下划线.@.#.$ 区分大小写 唯一性 不能使用关键字如 create select 不能单独使用数字 最长128位 # 基本上跟python或者 ...
- C++的几种字符类型
我们在C学过了char字符类型. 在C++中,char是基本的字符类型,但却不仅仅有这一种字符类型! 类型 含义 该类型数据所占的最小比特位数 char 字符 8位(即可表示28个字符) wchar_ ...
- Android 实现异步加载图片
麦洛开通博客以来,有一段时间没有更新博文了.主要是麦洛这段时间因项目开发实在太忙了.今天周六还在公司加班,苦逼程序猿都是这样生活的. 今天在做项目的时候,有一个实现异步加载图片的功能,虽然比较简单但还 ...
- 【bzoj1061】[NOI2008]志愿者招募 线性规划与费用流
题目描述 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管.布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者.经过估算,这个项目需要N 天才能完成,其中第i ...
- Python数据分析(四)DataFrame, Series, ndarray, list, dict, tuple的相互转换
转自:https://blog.csdn.net/lambsnow/article/details/78517340 import numpy as np import pandas as pd ## ...
- SPOJ Repeats(后缀数组+RMQ-ST)
REPEATS - Repeats no tags A string s is called an (k,l)-repeat if s is obtained by concatenating k& ...
- 安装全局webpack
npm ls webpack 和npm ls webpack -g 查看本地和全局版本 npm install webpack@1.15.0 -g 全局 然后到项目里面 npm install npm ...
- SetLocalTime设置本地时间
/***************************************************************** 函数名:EnableSetTimePriviledge 功 能:开 ...
- BZOJ3211 花神游历各国 【树状数组 + 并查集】
题目 输入格式 输出格式 每次x=1时,每行一个整数,表示这次旅行的开心度 输入样例 4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4 输出样例 101 11 1 ...
- BZOJ_day???
哇哈哈哈哈,这周能不能保持这个呢?