5.spring-核心概念
IoC :控制反转
使用对象时(如在service类中调用Dao层的对象,以便使用Dao类中的方法),本来是依靠new一个Dao层的对象来实现,而实现了Ioc思想的Spring为了解耦,将此过程改为:将Dao层的对象存进IoC容器,使用时直接调用即可。
Ioc容器负责对象的创建,初始化等一系列工作,呗创建或被管理的对象在IoC容器中统称为Bean
DI(依赖注入)
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入
最终效果:
使用对象时不仅可以直接从IoC容器中获取,并且能获取到bean已经绑定了的所有依赖关系
6.IoC入门案例
1.引入依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
2.创建配置文件
3.配置
4.使用
public class App2 {
public static void main(String[] args) {
//获取IoC容器
ApplicationContext ctx =new ClassPathXmlApplicationContext("applicationContext.xml");
//获取bean
BookDao bookDao =(BookDao) ctx.getBean("bookDao");
bookDao.save();
}
}
7.DI的入门案例
1.在serviceImpl里面去掉new的形式
2.在serviceImpl里面给这个bookDao属性添加set方法
3.在配置文件里面给serviceImpl添加依赖的类bookDao
8.bean的基础配置
1.配置别名
2.切换单例模式还是非单例模式
表现层对象,业务层对象。数据层对象,工具对象,这些可以使用单例模式
而封装实体类对象不能使用单例模式
9.bean是如何创建出来的,创建bean的三种方式
第一种:
利用反射机制来调用构造方法
首先看到配置文件:
<bean id="bookDao" class="com.jsu.dao.impl.BookDaoImpl"/>
这里对应的类是BookDaoImpl
那么在创建一个bookDao时,会调用BookDaoImpl里面的无参构造方法
如果没有手动添加无参构造会调用默认的那个无参构造
如果BookDaoImpl里面只有一个有参构造方法就会报错
第二种:
静态工厂模式
第三种:
实例工厂模式
第四种(实用)
12.bean的生命周期
bean生命周期:bean从创建到销毁的整体过程
bean生命周期控制:在bean创建后到销毁前做一些事情
13.bean的依赖注入--1.setter注入
简单类型:
1.定义属性并提供公共的setter方法
2.在配置文件中配置
这就完成了赋值操作
与之前的注入一个类的区别是:
注入简单类型,用balue来指定值、
而注入一个类的话就要用ref来指定模板,即创建什么样的类