【Java】(二)Spring从入门到入土——IOC概述及推导

前面第一篇我们认识了什么是Spring以及通过官网的指引,编写并启动了第一个属于我们的Spring程序,虽然程序启动了,但是对于里面的内容以及如何实现的我们还是不是十分的清楚,那么接下来我们就首先先来了解一下Spring中的一个核心概念——IOC

IoC(控制翻转)推导

之前的代码架构

  • 通常我们以前实现项目的时候会分为这么几步:
    • 先写一个UserDao接口

public interface UserDao {

public void getUser();

}

    • 再去写一个Dao的实现类

public class UserDaoImpl implements UserDao {

@Override

public void getUser() {

System.out.println("get");

}

}

    • 然后去写UserService的接口

public interface UserService {

public void getUser();

}

    • 最后去写Service的实现类(组合)

public class UserServiceImpl implements UserService {

private UserDao userDao = new UserDaoImpl();

@Override

public void getUser() {

userDao.getUser();

}

}

    • 最后再去使用它(测试)。

@Test

public void test(){

UserService service = new UserServiceImpl();

service.getUser();

}

上面就是我们以前实现一个功能的整体逻辑,也算是很清晰,但是存在着一个问题,即由程序员来控制代码的生成,对于每次的需求变更我们都需要去改动我们相应的代码,牵一发而动全身,而且这样代码的耦合性太高了。

IOC的理念

为了解决因为需求的改动而频繁去更改代码,我们在需要用到它的地方不去实现它,而是利用set提供一个接口。这样我们把创建对象的主动权交给了调用者即控制翻转。程序不用去管如何创建以及实现的,只需要提供一个接口。让调用者来决定,

public class UserServiceImpl implements UserService {

private UserDao userDao;

// 利用set来进行动态实现值的注入

public void setUserDao(UserDao userDao){

this.UserDao=userDao;

}

}

IoC本质

控制反转(IoC),是一种设计思想,DI(依赖注入)是实现IoC的一种方法。

  • Ioc是Spring框架的核心内容,使用多种方式完美的实现了IoC,可以使用XML配置也可以使用注解,新版本的Spring也可以零配置实现IoC
  • Spring容器在初始化时先读配置文件、根据配置文件或元数据创建于组织对象存入容器中,程序使用时再从IoC容器中取出需要的对象。
    【Java】(二)Spring从入门到入土——IOC概述及推导

  • 控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)

最后

  • 如果觉得看完有收获,希望能给我点个赞,这将会是我更新的最大动力,感谢各位的支持
  • 欢迎各位关注我的公众号【java冢狐】,专注于java和计算机基础知识,保证让你看完有所收获,不信你打我
  • 如果看完有不同的意见或者建议,欢迎多多评论一起交流。感谢各位的支持以及厚爱。

【Java】(二)Spring从入门到入土——IOC概述及推导

以上是 【Java】(二)Spring从入门到入土——IOC概述及推导 的全部内容, 来源链接: utcz.com/a/93433.html

回到顶部