文章目录
1 Spring程序开发步骤
1,使用Maven导入基本jar包
2,编写Dao接口及其实现类
3,创建Spring核心配置文件
4,在Spring配置文件中配置UserDao的Bean
5,使用SpringAPI从容器中获取对象
1,在pom.xml文件中新增标签引入Spring的jar包
2,编写Dao层接口及实现类
3,创建Spring配置文件
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
4,在Spring配置文件中配置UserDao的Bean
5,从容器中取得UserDao的Bean使用
2 Spring配置文件
2.1 bean标签的基本配置
<bean id="userDao" class="com.coisini.spring.core.UserDao"></bean>
id: Bean实例在Spring容器中唯一标识,不可重复
class: Bean的全限定名称
2.2 bean标签的范围配置
范围即scope,指对象的作用范围,取值如下:
singleton: 单例,默认值
prototype: 原型,即每次取得的Bean都不相同
request: Web项目中,Spring创建一个Bean对象会存入request域中
session: Web项目中,Spring创建一个Bean对象会存入session域中
global session: Web项目中,用于在Portlet环境
如果没有Portlet环境那么global session相当于session
后三项需要在其它的地方配置
scope属性中singleton与prototype的区别:
1,scope为singleton时,对象是单例的
2,scope为prototype时,对象是非单例的,每次取得的Bean都不同
singleton与prototype创建Bean的时机:
1,scope为singleton时,当Spring配置文件被加载时,Bean就被创建
只要容器在,对象就一直活着
2,scope为prototype时,getBean时对象才会被创建
当对象长时间不使用,会被GC
2.3 Bean生命周期配置
init-method: 指定类中的初始化方法名称
destroy-method: 指定类中销毁方法名称
当为Bean配置好init-method属性和destroy-method后,该Bean被创建时会自动执行对应的初始化方法,被销毁时会自动执行对应的销毁方法
2.4 Bean实例化三种方式
1,无参构造方法
2,工厂静态方法
class属性使用工厂的全限定名,增加factory-method属性值设为生产Bean的静态方法
3,工厂实例方法
先配置工厂的Bean,再使用factory-bean指明创建Bean的工厂,再使用factory-method设置方法
工厂静态方法:
工厂实例方法:
3 依赖注入
在Web工程中,需要Dao层,Service层,Controller层,Controller将会调用Service层提供的方法,而Service层又调用了Dao层的方法进而对数据库进行增删改查,程序最终使用的是UserService,所以可以在Spring容器中,将UserDao设置到UserService中
3.1 Bean的依赖注入
将UserDao注入到UserService的内部,上层直接使用UserService对象:
1,使用set方法增加property属性完成对UserService的注入
2,使用p命名空间完成对UserService的注入
需要引入:
xmlns:p="http://www.springframework.org/schema/p"
3,使用构造方法完成对UserService的注入
3.2 Bean依赖注入的数据类型
除了可以注入其它的引用的Bean,还可以注入普通数据类型,集合等都可以在容器中进行注入
1,普通数据类型
2,引用数据类型
3,集合数据类型
1,普通数据类型的注入:
2,集合数据类型的注入:
3.3 引入其它配置文件(分模块开发)
实际开发中,Spring的配置内容非常多,这就导致Spring配置文件很繁杂且体积很大,所以可以将部分配置拆解到其它配置文件中,而在主配置文件中通过import标签进行加载
<import resource="applicationContext.xml"></import>
4 Spring相应API
4.1 关于ApplicationContext
ApplicationContext的继承体系:
ApplicationContext接口的实现类:
1,ClassPathXMLApplicationContext
从项目根路径下加载配置文件,推荐使用
2,FileSystemXMLApplicationContext
从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置上
3,AnnotationConfigApplicationContext
当使用注解配置容器对象时,需要用此类创建Spring容器,用它读取注解
4.2 getBean的使用
常用getBean(String id)和getBean(Class<?> klass)来从容器中获取Bean,通过id获取Bean允许容器中出现多个相同类不同id的Bean,但通过Class获取Bean,容器中该类的Bean必须是唯一的