Spring Bean基本概念
来源:互联网 发布:php 采集今日头条 编辑:程序博客网 时间:2024/05/16 06:13
参考书籍《Spring 3.x企业应用开发与实践》
Bean配置信息是Bean的元数据信息,由以下4个方面组成
- Bean的实现类
- Bean的属性信息,如数据库的连接数、用户名、密码
- Bean的依赖关系,Spring根据依赖关系配置完成Bean之间的装配
- Bean的行为配置,如生命周期范围及生命周期各过程的回调函数。
Spring通过一个配置文件描述Bean及Bean之间的依赖关系,利用Java反射功能实例化Bean并建立Bean之间的依赖关系。Spring的Ioc容器在完成这些底层工作的基础上,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。
- BeanFactory是Spring框架最核心的接口,它提供了高级Ioc的配置机制。
- ApplicationContext建立在BeanFactory之上,面向开发者,一般称为Spring容器。
在IoC容器中装配Bean
- JavaBean属性名命名规范:变量前两个字母要么全小写,要么全大写。
- Bean作用域:在Spring环境下,对于所有的Dao类都可以采用单例模式,因为Spring利用AOP和LocalThread的功能,对非线程安全的变量(或称状态量)进行了特殊的处理,使这些非线程安全的类变成了线程安全的类。
- Web相关的作用域的Bean注入到singleton或prototype的Bean时存在作用域依赖的问题,此时通过Spring AOP创建动态代理,这个动态代理是Car类的子类,Spring给它添加一段逻辑,通过判断当前Boss位于哪个线程中,让Boss Bean引用到对应线程HTTP请求的car Bean。
【图aop】
<bean id="car" class="com.baobaotao.scope.Car" scope="request" > <aop:scoped-proxy/></bean><bean id="boss" class="com.baobaotao.scope.Boss" p:car-ref="car" > <prototype name="car" ref="car"/></bean>
<bean id="car" class="com.baobaotao.scope.Car" scope="singleton" /><bean id="boss1" class="com.baobaotao.scope.Boss" p:car-ref="car" /><bean id="boss2" class="com.baobaotao.scope.Boss" p:car-ref="car" /><bean id="boss3" class="com.baobaotao.scope.Boss" p:car-ref="car" />
<bean id="car" class="com.baobaotao.scope.Car" scope="prototype" /><bean id="boss1" class="com.baobaotao.scope.Boss" p:car-ref="car" /><bean id="boss2" class="com.baobaotao.scope.Boss" p:car-ref="car" /><bean id="boss3" class="com.baobaotao.scope.Boss" p:car-ref="car" />
- 各种配置方式比较
1 0
- Spring Bean基本概念
- Spring的Bean之Bean的基本概念
- Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring读书笔记-----Spring的Bean之Bean的基本概念
- Spring 初探(三)(Spring bean 基本概念)
- Bean基本概念
- 三大框架知识点之 Spring的Bean的基本概念
- Bean基本概念的实现
- Spring基本概念
- Spring基本概念
- 中秋|又是一年一度做月饼的时节
- ProjectEuler 11,12,13
- 我的Go语言本地安装经历 - msi安装法
- Android Log工具类
- C#控制台基础 自定义类的实例作为函数的形参,解除形参与实参之间的关联
- Spring Bean基本概念
- 微信开发中使用curl上传永久素材
- 静态添加fragment/小心有坑的地方
- javase的JDBC用法小总结
- 如何查看iOS应用的id并获取资源图片/解压Assets.car文件
- Kindle商店请求出错怎么办?附解决办法
- HDU 1789 Doing Homework again(贪心)
- Android 运行时请求权限
- 求两个字符串公共子串的最长长度