spring容器和装配Bean:
2015-11-30 23:53
302 查看
spring容器和装配Bean:
1、容器是spring的核心,使IoC管理所有和组件
2、spring的两种容器:a、BeanFactoy
b、ApplicationContext应用上下文
3、BeanFactory:BeanhFactory使用延迟加载所有的Bean,为了从BeanhFactory得到一个Bean,只要调用
getBean()方法,就能获得Bean
4、ApplicationContext:a、提供文本信息解析,支持I18N
b、提供载入文件资源的通用方法
c、向注册为监听器的Bean发送事件
d、ApplicationContext接口扩展BeanFactory接口
e、ApplicationContext提供附加功能
5、ApplicationContext的三个实现类:a、ClassPathXmlApplication:把上下文文件当成类路径资源
b、FileSystemXmlApplication:从文件系统中的XML文件载入上
下文定义信息
c、XmlWebApplicationContext:从Web系统中的XML文件载入上下
文定义信息
6、在默认情况下,Bean全都是单态,在<bean>中的singleton为false
7、<bean>中的id属性必须遵循Java规范,而name属性可以不遵循
8、Bean的实例化的时候需要一些初始化的动作,同样当不再使用的时候,需要从容器中将其销毁
9、对象的初始化:<bean init-method="方法名">
10、对象的销毁:<bean destroy-method="方法名">
销毁对象的过程:a、主线程先被中断
b、Java虚拟机使用垃圾回收机制回收Bean对象
11、Bean设置:设值注入:1)简单配置:<bean id="xxx" class="Bean的全称类名">
<property name="xx"
value="xxxxx"></property>
</bean>
value中的值可以是基本数据类型或者String类型,spring将会
自动判断设置的类型并且
将其转换成合适的值
2)引用配置:<bean id="xxx" class="Bean的全称类名">
<property name="xx"
ref="xxxxx"></property>
</bean>
ref中的值是引用数据类型,spring容器会完成获取工作
3)List和数组:<bean id="xxx" class="Bean的全称类名">
<property
name="list">
<list>
<value></value>
<ref bean=""/>
</list>
</property>
</bean>
list元素内可以是任何元素,但不能违背Bean所需要的对象类
型
4)Set配置:和<list>一样,将<list>改成<set>
5)Map配置:Map中的每条数据是由一个键和一个值组成,用<entry>元素来定
义
<bean id="xxx" class="Bean的全称类名">
<property
name="list">
<entry key="key1">
<value></value>
</entry>
</property>
</bean>
<bean id="xxx" class="Bean的全称类名">
<property
name="list">
<entry key="key1">
<ref bean=""/>
</entry>
</property>
</bean>
注意:配置entry时,属性key的值只能是String,因为Map通常用
String作为主键
6)Properties配置:使用<props>和<map>相似,最大区别是<prop>的值都是
String
注意:使用设值注入必须要有set方法,通过name属性找set方法
优势:a、通过set()方法设定更直观,更自然
b、当依赖关系较复杂时,使用set()方法更清晰
构造子注入:必须要有无参和带参的构造方法,加上index(值从0开始)属性避免注入混
淆
<constractor-arg>
注意:设值注入可以和构造子注入混合使用。先调用构造方法产生对象,再调用set()方法
赋值。但只使用设值注入时,会先调用无参的构造方法
优势:a、依赖关系一次性设定,对外不准修改
b、无需关心方式
c、注入有先后顺序,防止注入失败
spring容器和装配Bean:
1、容器是spring的核心,使IoC管理所有和组件
2、spring的两种容器:a、BeanFactoy
b、ApplicationContext应用上下文
3、BeanFactory:BeanhFactory使用延迟加载所有的Bean,为了从BeanhFactory得到一个Bean,只要调用
getBean()方法,就能获得Bean
4、ApplicationContext:a、提供文本信息解析,支持I18N
b、提供载入文件资源的通用方法
c、向注册为监听器的Bean发送事件
d、ApplicationContext接口扩展BeanFactory接口
e、ApplicationContext提供附加功能
5、ApplicationContext的三个实现类:a、ClassPathXmlApplication:把上下文文件当成类路径资源
b、FileSystemXmlApplication:从文件系统中的XML文件载入上
下文定义信息
c、XmlWebApplicationContext:从Web系统中的XML文件载入上下
文定义信息
6、在默认情况下,Bean全都是单态,在<bean>中的singleton为false
7、<bean>中的id属性必须遵循Java规范,而name属性可以不遵循
8、Bean的实例化的时候需要一些初始化的动作,同样当不再使用的时候,需要从容器中将其销毁
9、对象的初始化:<bean init-method="方法名">
10、对象的销毁:<bean destroy-method="方法名">
销毁对象的过程:a、主线程先被中断
b、Java虚拟机使用垃圾回收机制回收Bean对象
11、Bean设置:设值注入:1)简单配置:<bean id="xxx" class="Bean的全称类名">
<property name="xx"
value="xxxxx"></property>
</bean>
value中的值可以是基本数据类型或者String类型,spring将会
自动判断设置的类型并且
将其转换成合适的值
2)引用配置:<bean id="xxx" class="Bean的全称类名">
<property name="xx"
ref="xxxxx"></property>
</bean>
ref中的值是引用数据类型,spring容器会完成获取工作
3)List和数组:<bean id="xxx" class="Bean的全称类名">
<property
name="list">
<list>
<value></value>
<ref bean=""/>
</list>
</property>
</bean>
list元素内可以是任何元素,但不能违背Bean所需要的对象类
型
4)Set配置:和<list>一样,将<list>改成<set>
5)Map配置:Map中的每条数据是由一个键和一个值组成,用<entry>元素来定
义
<bean id="xxx" class="Bean的全称类名">
<property
name="list">
<entry key="key1">
<value></value>
</entry>
</property>
</bean>
<bean id="xxx" class="Bean的全称类名">
<property
name="list">
<entry key="key1">
<ref bean=""/>
</entry>
</property>
</bean>
注意:配置entry时,属性key的值只能是String,因为Map通常用
String作为主键
6)Properties配置:使用<props>和<map>相似,最大区别是<prop>的值都是
String
注意:使用设值注入必须要有set方法,通过name属性找set方法
优势:a、通过set()方法设定更直观,更自然
b、当依赖关系较复杂时,使用set()方法更清晰
构造子注入:必须要有无参和带参的构造方法,加上index(值从0开始)属性避免注入混
淆
<constractor-arg>
注意:设值注入可以和构造子注入混合使用。先调用构造方法产生对象,再调用set()方法
赋值。但只使用设值注入时,会先调用无参的构造方法
优势:a、依赖关系一次性设定,对外不准修改
b、无需关心方式
c、注入有先后顺序,防止注入失败
相关文章推荐
- java的接口回调
- spring 的事务属性二——事务传播行为
- java设计模式---模板方法模式
- 【最新】最流行的java后台框架 springmvc mybaits 集代码生成器
- Java properities 中文乱码解决方法
- 【转】java 注释规范
- Spring 事务的梳理一——事务的属性
- java 学习心得3
- ubuntu 在线安装jdk1.6 1.7 1.8
- ResourceBundle、Locale
- 给Java程序猿们推荐一些值得一看的好书
- JAVA语法基础要点
- java学习笔记之多线程(1)之创建线程
- java nio多线程引起的full gc问题
- RxJava使用场景小结
- java设计模式之单例模式
- spring 依赖注入
- java设计模式之观察者模式
- java5线程并发库学习之Semaphore
- Java GC基本算法