什么是Spring(Spring官网)
- Spring是一个开源框架
- Spring是IOC(控制反转)和AOP(面向切面编程)的容器框架
- Spring模块
Test:Spring的单元测试模块
Core Container:核心容器模块
AOP+Aspects:面向切面编程模块
Instrumentation:提供了class instrumentation支持和类加载器的实现
Data Access Integration:数据的获取/整合模块,包含JDBC等等。
Web:提供面向Web整合特性
1、IOC(Inversion of Control):控制反转
通过代码理解什么是IOC,为什么要使用IOC 创建一个普通的JAVA项目 UserDao.java
public interface userDao{
public void getUser();
}
编写实现类 UserDaoImpl.java
import com.jiayang.dao.UserDao;
public class UserDaoImpl implements userDao{
@Override
public void getUser(){
System.out.println("获取用户数据");
}
}
UserService.java
public interface UserService{
public void getUser();
}
UserServiceImpl.java
import com.jiayang.dao.UserDao;
import com.jiayang.dao.Impl.UserDaoImpl;
import com.jiayang.service.UserService;
public class UserServiceImpl implements UserService{
private UserDao userDao = new UserDaoImpl();
@Override
public void getUser(){
userDao.getUser();
}
}
SpringDemoTest.java
import com.jiayang.service.UserService;
import com.jiayang.service.impl.UserServiceImpl;
public class SpringDemoTest{
public static void main(String[]args){
** UserService service =new UserServiceImpl();**
service.getUser();
}
}
在前面的代码中,我们所有的对象都是通过new出来的。如果我要增加一个UserDao的实现类那么我的service层同样需要更改。对于一个简单的项目还体现不出来。如果一个大项目,有几百个实现类需要更改那将是费时费力的一件事。