Spring框架简介
Spring是一个开源的轻量级的应用开发框架,其目的是用于简化企业级应用程序的开发,减少入侵。
Spring提供的IOC和AOP应用,可以将组件的耦合度降到最低,即解耦,便于日后的维护和升级。
Spring为系统提供了一个整体的解决方案,开发者可以利用本身提供的功能外,也可以与第三方框架和技术整合应用,可以自由的选择采用哪种技术进行开发。即:可以单独使用,也可以和Struts框架,ibatis框架等组合使用
为什么要使用Spring?
Spring的本质是管理软件中的对象,如何创建对象和维护对象之间的关系。
Spring的主要功能
组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
1)IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。
spring中有三种注入方式,一种是set注入,一种是接口注入,另一种是构造方法注入。
2)AOP面向切面编程
aop就是纵向的编程,如下图所示,业务1和业务2都需要一个共同的操作,与其往每个业务中都添加同样的代码,不如写一遍代码,让两个业务共同使用这段代码。
spring中面向切面变成的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。
容器和Bean管理
Spring容器简介
在Spring中,任何的java类和JavaBean都被当成Bean处理,这些Bean通过容器管理和应用。
Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦。
Spring容器有BeanFactory和ApplicationContext两种类型
什么是JavaBean:一种简单规范的java对象
何时使用Spring?
当需要管理javaBean对象的时候就可以使用。Spring是最简洁的对象管理方案之一。
Spring容器的实例化
ApplicationContext继承自BeanFactory接口,拥有较多的企业级方法,
//加载配置文件实例化
String conf="applicationContext.xml";
ApplicationContext ac=
new ClassPathXmlApplicationContext(conf);
Spring容器的使用
首先在applicationContext.xml中添加Bean定义
<bean id="标识符" class="Bean类型"> </bean>
然后在创建BeanFactory和ApplicationContext容器对象后,调用getBean()方法获取Bean的实例即可。
getBean("标识符")
例:
<bean id="c1" class="java.util.GregorianCalendar">
</bean>
Student s=
ac.getBean("s1",Student.class);
Bean的实例化
1、用构造器来实例化
id或者name属性:用于指定Bean名称,用于从Spring中查找这个Bean对象。
class:用于指定Bean类型,会自动调用无参构造器创建对象
<!-- 构造方法-->
<bean id="c1" class="java.util.GregorianCalendar">
</bean>
2、使用静态工厂方法实例化
id:用来指定Bean的名称
class:用来指定工厂的类型
factory-method:用于指定共产中创建Bean对象的方法,必须用static修饰的方法。
<!-- 采用Calendar.getInstance(),静态工厂方法 -->
<bean id="c2" class="java.util.Calendar" factory-method="getInstance">
</bean>
3、使用实例工厂方法实例化
id:用来指定Bean的名称
factory-bean属性用于指定Bean对象
factory-method属性用于指定工厂中创建Bean对象的方法
<bean id="date1" factory-bean="c2" factory-method="getTime">
</bean>