继续整起来
Spring:软件行业的春天
前身:interface21
创始人:Rod Johnson
官方下载地址:JFrog
GitHub地址:https://github.com/spring-projects
优点:
开源免费
轻量级的,非入侵式的
控制反转 IoC,面向切面 Aop
对事物的支持,对框架的支持
总感觉前面有点废话,
七大框架(百度都是这样)
主要掌握,springBoot,springCloud
IOC理论推导:
原来写
dao
public interface UserDao {
void getUser();
}
daoImpl
public class UserDaoImpl implements UserDao{
@Override
public void getUser() {
System.out.println("获取用户数据");
}
}
public class UserDaoMySqlImpl implements UserDao{
@Override
public void getUser() {
System.out.println("mysql获取用户数据");
}
}
public class UserDaoOracleImpl implements UserDao{
@Override
public void getUser() {
System.out.println("Oracle获取用户数据");
}
}
写了三个UserDao的实现类
service
public interface UserService {
public void getUser();
}
serviceImpl
public class UserServiceImpl implements UserService{
private UserDao userDao=new UserDaoImpl(); //此处将类确定了,所以只能调用UserDaoImpl中的方法
@Override
public void getUser() {
userDao.getUser();
}
}
每次要修改调用的方法时,需要更改代码,将实例化的类更换,增大了程序猿的操作
更改:
public class UserServiceImpl implements UserService{
private UserDao userDao;
public void setUserDao(UserDao userDao){
this.userDao=userDao;
}
@Override
public void getUser() {
userDao.getUser();
}
}
使用set方法,将实例化的类放在了用户手上,根据用户的操作更改
对比:
最开始程序需要程序猿修改
更改之后,程序的实现方式交到了用户的手上,不需要程序猿进行修改
也就是,不需要程序猿创建类了
IOC本质:
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法;
控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)。
额,感觉,好像就是面向对象编程,参数不固定,由用户的操作判断需要创建的变量