一、Spring简介和配置文件
1、Spring的体系结构
2、Spring的开发步骤
一开始我们开发中的创建对象方法如下图,耦合性较高
为了解耦,我们首先将save方法和update方法写到一个xml配置文件中,再通过Spring框架去读取xml文件
2.1文字描述Spring框架开发的步骤
- 导入Spring的jar包,但是我们开发中使用了maven,所以只需要导入maven的坐标。
- 编写UserDaoImpl的实现方式
- 创建一个Spring配置文件,将要产生对象的类的全包名配置到xml文件中
- 使用Spring的API获得Bean实例
3、Spring配置文件
3.1Bean标签的基本配置
作用:
用于配置对象交由Spring来创建,默认情况下它调用的是类中的午餐构造函数,如果没有午餐构造函数则不能创建成功
基本属性
- id:Bean实例在Spring容器中的唯一标识
- class:Bean的全限定名,即需要配置的包的全包名
3.2Bean的范围配置
scope:指对象的作用范围
singleTon:当加载开始加载配置文件的时候,即ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml")
的时候就会创建对象
Bean的实例个数:1个
Bean的实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例
Bean的生命周期:
-
创建对象:当应用加载,创建容器的时候,对象就被创建了
-
对象运行:只要容器在,对象一直活着
-
对象销毁:当应用卸载,容器销毁时,对象就被销毁了。
prototype:当每次getBean()的时候才会创建对象,每次都会创建新的对象
Bean的实例化个数:多个
Bean的实例化时机:当调用getBean方法时实例化Bean
Bean的生命周期:
-
对象的创建:当使用对象时,创建新的对象实例
-
对象运行:只要对象在使用中,就会一直活着
-
对象销毁:当对象长时间不用的时候,被Java的垃圾回收器回收了
3.3Bean生命周期配置
int() , destroy()
3.4Bean的三种实例化方法
无参构造方法实例化:
工厂静态方法实例化:在配置文件中(applicationContext.xml)
public class StaticFactory{
public static UserDao getUserDao(){
return new UserDaoImpl();
}
}
工厂实例方法实例化:
public class Factory{
public UserDao getUserDao(){
return new UserDaoImpl();
}
}
3.5Bean的依赖注入分析
依赖注入:他是Spring框架核心IOC的具体实现。
3.5.1Bean的依赖注入方法
set方法:
private UserDao userDao;
public void setUserDao(UserDao UserDao){
this.userDao = userDao;
}
public void save(){
userDao.save();
}
原来的save
相比之下,save的方法不使用容器了
原来的配置文件
后来的配置文件。注意:userDao是小写的
注意:
property中的name对应的是Service内部对应的属性,ref对应的是bean当中id的名字
描述:要把容器当中的userDao通过userService内部的一个名字叫做setUserDao方法获得userDao
简便的使用p标签注入
构造方法:
public class UserServiceImpl implements UserService{
private UserDao userDao;
public void setUserDao(UserDao UserDao){
this.userDao = userDao;
}
public UserServiceImpl(){}
public void save(){
userDao.save();
}
}
配置文件
注意:
name和ref两个的属性都是"userDao",但是含义不一样。name后面的userDao是构造函数中的参数名,ref是bean当中id的名字
3.7Bean的依赖注入的数据类型
- 普通数据类型
- 引用数据类型
- 集合数据类型
3.8引入其他的配置文件
使用import引入,配置文件写在resource文件夹下
import resource="applicationContext-xxx.xml"