标签:
1、什么是Spring
Spring是一个开源的轻量级框架,其目的是用于简化企业级应用程序开发,减少侵入;
Spring提供的IOC和AOP应用,可以将组件的耦合度降至最低,即解耦,便于系统日后的维护和升级;
Spring为系统提供了一个整体的解决方案,开发者可以利用它本身提供的功能外,也可以与第三方框架和技术整合应用,
可以自由选择采用哪种技术进行开发。
为什么要使用Spring?
Spring的本质是管理软件中的对象,如何创建对象和维护对象之间的关系
2、Spring容器简介
在Spring中,任何的Java类和JavaBean都被当成Bean处理,这些Bean通过容器管理和应用。
Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦;
Spring容器有BeanFactory和ApplicationContext两种类型;
什么是JavaBean:
一种简单规范的Java对象
何时使用Spring?
当需要管理JavaBean对象的时候就可以使用,Spring是最简洁的管理方案之一
3、Spring容器的实例化 如何创建对象
ApplicationContext继承BeanFactory,拥有更多的企业级方法,推荐使用该类型,实例化如下:
//加载文件系统中的配置文件实例化
String conf="C:\applicationContext.xml";
ApplicationContext ac=new FileStystemXmlApplicationContext(conf);
//加载工程classpath下的配置文件实例化
String conf="applicationContext.xml";
ApplicationContext ac=new ClassPathXmlApplicationContext(conf);
如何使用Spring?
遵守Spring定义的规则,基于配置和默认规则,减少代码的书写
4、Spring容器的使用
从本质上讲,BeanFactory和ApplicationContext仅仅只是一个维护Bean定义以及相互依赖关系的高级工厂接口。通过BeanFactory和ApplicationContext我们可以访问Bean定义
首先在容器配置文件applicationContext.xml中添加Bean定义。
<bean id="标识符" class="Bean类型"/>
然后在创建BeanFactory和ApplicationContext容器对象后,调用getBean()方法获取Bean的实例即可
getBean("标识符")
5、Bean的实例化
Spring容器创建Bean对象的方法有以下3种
用构造器来实例化
使用静态工厂方法实例化
使用实例工厂方法实例化
将对象创建规则告诉Spring,Spring会帮助你去创建对象;
基于配置和默认规则,减少了代码的书写!
6、Bean的实例化
用构造器来实例化
<bean id="calendarObj1" class="java.util.GregorianCalendar"/>
<bean name="calendarObj2" class="java.util.GregorianCalendar"/>
id或name属性用于指定Bean名称,用于从Spring中查找这个Bean对象
class用于指定Bean类型,会自动调用无参数构造器创建对象
使用静态工厂实例化
<bean id="calendarObj2" class="java.util.Calendar" factory-method="getInstance"/>
id属性用于指定Bean名称;
class属于用于指定工厂类型
factory-method属性用于指定工厂中创建Bean对象的方法,必须用static方法。
使用实例工厂方法实例化
<bean id="calendarObj3" class="java.util.GregorianCalendar"/>
<bean id="dateObj" factory-bean="calendarObj3" factory-method="getTime"/>
id用于指定Bean名称;
factory-bean用于指定工厂Bean对象;
factory-method属性用于指定工厂中创建Bean对象的方法
7、Bean的命名
Bean的名称
在Spring容器中,每个Bean都需要有名字(即标识符),该名字可以用<bean>元素的id或name属性指定
id属性比name严格,要求具有唯一性,不允许用"/"等特殊字符
Bean的别名
已定义好的Bean,再增加另外的一个名字应用可以使用<alias>指定
<alias name="fromName" alias="toName"/>
8、Bean的作用域
Spring容器在实例化Bean时,可以创建一下作用域的Bean对象
上面的Bean作用域,可以通过<bean>定义的scope属性指定
9、Bean的声明周期回调
指定初始化回调方法
<bean id="exampleBean" class="" init-method="init"></bean>
指定销毁回调方法,仅适用于singleton模式的Bean
<bean id="" class="" destory-method="destory"></bean>
提示:指定销毁回调方法,仅使用于singletion模式的bean
Spring会管理对象的创建过程
在顶级的<beans/>元素中的default-init-method属性,可以为容器所有<bean>指定初始化回调方法
<beans dafault-init-method="init">
</beans>
在顶级的<beans/>元素中的default-destory-method属性,可以为容器所有<bean>指定初始化回调方法
10、Bean延迟实例化
在ApplicationContext实现的默认行为就是在启动时将所有singletion Bean提前进行实例化
如果不想让一个singletion bean在ApplicationContext初始化时被提前实例化,可以使用<bean>元素的lazy-init="true"属性改变
一个延迟初始化bean将在第一次被用到时实例化
<bean id="" lazy-init="true" class=""/>
在顶级的<beans/>元素中的default-lazy-init属性,可以为容器所有<bean>指定延迟实例化特性
11、指定bean依赖关系
当一个Bean对另一个Bean存在依赖关系时,可以利用<bean>元素的depends-on属性指定
<bean id="" class="" depends-on="manager"/>
<bean id="manager" class="" />
当一个Bean对多个bean存在依赖关系时,depends-on属性可以指定多个bean名,用逗号隔开
12、IOC概念
标签:
原文地址:http://www.cnblogs.com/Crow00/p/4543086.html