前置技能:
Java、JDBC、什么是IOC:
控制反转(Inversion of Control),是面向对象编程中的一种设计原则,可以降低代码之间的耦合度。 最常见的实现方式是依赖注入(Dependency Injection)什么是DI:
依赖注入(Dependency Injection),A对象依赖B接口类型对象,容器把B接口的一个实现类实例化对象赋值给A中的属性b(使A持有一个B借口的实现类对象)。举个栗子
每个Service对象会持有一个Dao对象,在以往,通常我们需要通过构造器new一个Dao对象。
public class ServiceImpl implements Service {
//声明本类对象持有一个Dao对象
private Dao myDaoImpl;
//在本类构造器中new一个DaoImple
public ServiceImpl() {
myDaoImpl=new DaoImple();
}
}
但在学习IOC之后,我们只需声明Dao,不用为这个属性赋值。
public class ServiceImpl implements Service {
//声明本类对象持有一个Dao对象
private Dao myDaoImpl;
//Spring的IOC容器会自动为myDaoImpl这个属性赋值
}
这样做的好处是,当我们要更改Dao时,我们只需要修改配置文件,而无需更改已经上线的代码。
至于为什么不在原本的代码上做修改?开闭原则
Getting Started:
1、引入jar包
2、创建demo需要的Service和Dao类
Service类及其实现类
public interface Service {
void doSomething();
}
依赖注入的对象需要实现set方法
public class ServiceImpl implements Service {
private Dao daoImpl;
@Override
public void doSomething() {
System.out.println("servie的doSomething方法");
//没有给daoImpl赋值,直接调用其方法
daoImpl.doSomething()