Spring之bean
来源:互联网 发布:日本娱乐圈黑料 知乎 编辑:程序博客网 时间:2024/05/29 05:03
1.为什么要配置次bean?
spring为什么能够在众多框架中脱颖而出,主要在于他的轻便性,不需要实现很多接口之类的,但是只要是涉及到复杂业务,总会存在一个类引用另一个类的现象,这样代码会变得很有依耐性,而spring他主要是通过Spring容器来降低代码之间的耦合度
2.如何配置bean?
(1)是通过构造函数来配置:
<constructor-arg value=" "/>:基本的
<constructor-arg ref=" "/>有引用其他类的
(2)是通过静态工厂来配置的:
<bean id = " " class = " " factory-method = " "/>
3bean的作用域:
所有的spring bean 默认是单例的,也就是说每次通过getBea()调用时,返回的是bean的同一个实例,那如果是想要获得唯一的bean实例(京东二面有被问到),为了让spring每次请求时都为bean产生一个新的实例,只需要配置Bean的scope属性为prototype例如:
<bean id = "tiv" class = " " scope = "prototype"/>
作用域有如下几种
(1):singleton:在每一个Spring容器中,一个Bean定义一个对象实例(默认)
(2):prototype:允许Bean的定义可以被实例化任意次(每次调用都创建一个实例)
(3)request:在一次http请求中,每个Bean定义对应一个实例,只有在SpringMVC上下文中才有效
(4)session:在一个HttpSession中,每个Bean定义对应一个实例,该作用域仅在基于Web的springMVC上下文张才有效
(5)global-session:在一个全局Http Session中,每一个Bean定义对应一个实例,仅在spring mvc中才有效
4.初始化和销毁bean:(钩子方法)
spring为什么能够在众多框架中脱颖而出,主要在于他的轻便性,不需要实现很多接口之类的,但是只要是涉及到复杂业务,总会存在一个类引用另一个类的现象,这样代码会变得很有依耐性,而spring他主要是通过Spring容器来降低代码之间的耦合度
2.如何配置bean?
(1)是通过构造函数来配置:
<constructor-arg value=" "/>:基本的
<constructor-arg ref=" "/>有引用其他类的
(2)是通过静态工厂来配置的:
<bean id = " " class = " " factory-method = " "/>
3bean的作用域:
所有的spring bean 默认是单例的,也就是说每次通过getBea()调用时,返回的是bean的同一个实例,那如果是想要获得唯一的bean实例(京东二面有被问到),为了让spring每次请求时都为bean产生一个新的实例,只需要配置Bean的scope属性为prototype例如:
<bean id = "tiv" class = " " scope = "prototype"/>
作用域有如下几种
(1):singleton:在每一个Spring容器中,一个Bean定义一个对象实例(默认)
(2):prototype:允许Bean的定义可以被实例化任意次(每次调用都创建一个实例)
(3)request:在一次http请求中,每个Bean定义对应一个实例,只有在SpringMVC上下文中才有效
(4)session:在一个HttpSession中,每个Bean定义对应一个实例,该作用域仅在基于Web的springMVC上下文张才有效
(5)global-session:在一个全局Http Session中,每一个Bean定义对应一个实例,仅在spring mvc中才有效
4.初始化和销毁bean:(钩子方法)
eg:
<bean id = " " class = " " init-methid = "turnOnLights" destroy-method = "turnOffLights"/>这是为每个bean都设置一个开始方法和结束方法
如果很多bean 都拥有相同的名字和方法则可以在beans元素中设置的default-init-method和default-destroy-method属性
(3)通过注入Bean的属性(也就是通过set方法注入)
eg:
<bean id = " " class = " " >
<property name = " " value = " "/>字面量
<property name = " " ref = " "/> 引用值
当然也可以有内部bean
<bean id = " " class = " " >
<property name = " " value = " "/>字面量
<property name = " " rname = " ">
</property>
</bean>
constructor-arg不需要有name属性
Java还自带了很多集合类
<list>:list和set有时候可以混用,list允许重复,而set不可以重复
<set>
<map>
<props>
阅读全文
0 0
- spring之bean属性
- Spring之Bean配置
- Spring之二 Bean
- Spring之Bean 生命周期
- Spring之bean
- Spring之装配Bean
- Spring bean 之 FactoryBean
- Spring 之 配置 bean
- Spring 之 Bean
- Spring之bean
- spring之bean标签
- spring之bean工厂
- Spring的Bean之设置Bean值
- Spring的Bean之Bean的基本概念
- Spring的Bean之Bean的基本概念
- Spring Bean之JavaConfig自动化装配bean
- Spring的Bean之设置Bean值
- Spring之Bean装配原理
- c#中(int)、int.Parse()、int.TryParse、Convert.ToInt32的区别
- Myeclipse破解工具破解方法(二)
- javascript 中的call 和apply
- javascript Object
- Android webView的cookie机制
- Spring之bean
- Cygwin中vi编辑器方向键和Backspace键不好使的解决方法
- 创建表空间
- 磁疗有用吗?脉冲磁场应用于肿瘤治疗
- SpringBoot配置优先级
- doT.js 模板引擎
- Android 如何调用第三方.so (.a) 文件
- Kafka 分布式环境搭建
- 深入理解Http协议