一、什么是spring?
Spring框架的核心是Ioc容器与AOP面向切面编程。
Ioc容器是所有对象管理的基础,AOP是建立在Ioc容器的基础上才得到的。Spring Ioc负责创建与管理系统对象,并在此基础上拓展功能。
二、springIOC容器对JavaBean 的管理
1.Bean的创建
1.调用类的无参构造方法创建
public class UserControllerImp implements IUserController {
private IUserService service;
//步骤一
public void setService(IUserService service) {
this.service = service;
}
@Override
public void save() {
System.out.println("===controller的新增===");
service.save();
}
}
2.通过工厂来创建
public class BeanTestFactory {
//设计方法
public UserDemo createUser(){
System.out.println("===>通过普通工厂构造对象");
return new UserDemo();
}
}
3.通过静态工厂创建
public class BeanStaticTestFactory {
//设计方法
public static UserDemo createUser(){
System.out.println("===>通过static工厂构造对象");
return new UserDemo();
}
}
2.Bean的生命周期
1.实例化
2.属性赋值
(前置处理)
3.初始化
3.1 系统初始化
3.2 自定义初始化
(返回处理)
(异常处理)
(后置处理)
4.销毁
public class UserDemo implements InitializingBean{
//系统初始化
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("===>初始化系统");
}
private String uname;
public void setUname(String uname) {
System.out.println("===>进入set方法属性赋值");
this.uname = uname;
}
public UserDemo() {
System.out.println("===>进入无参构造方法");
}
//自定义初始化
public void doinit(){
System.out.println("===>初始化自定义");
}
//销毁了
public void dodestory(){
System.out.println("===>系统销毁了");
}
}
3.Bean的作用域
含义:bean在容器中的创建策略
语法:
<bean scope="属性值">
属性值:
1.singleton 单例(懒汉式和饿汉式)
2.prototype 多例
3.request 一个请求创建一个对象
4.session 一个会话创建一个对象
4.Bean的自动装配
属性值:byName:按名称装配 set方法 属性名与bean的id匹配
byType:按类型装配 set方法 属性类型与bean的class匹配
constructor:按类型装配 构造方法
替换:<property>
<constructor-arg>
语法:
<bean aotowire = "属性值"> =============> 局部
<beans default-autowire=" "> ================> 全局