Spring知识小汇(2)—— IOC理论推导(IOC本质、HelloSpring、IOC创建对象的方式)
发布日期:2021-05-07 08:59:23 浏览次数:20 分类:技术文章

本文共 1898 字,大约阅读时间需要 6 分钟。

文章目录

IOC理论推导

在之前的业务中,用户的需求可能会影响我们原来的代码,我们需要修改原来的代码!如果工程量浩大,修改起来是十分的麻烦。

可以通过使用set接口实现,此时不用修改原来的代码,只需调用者,通过自己的需求来调用不同的实现。

public class UserServiceImpl implements UserService {       private UserDao userDao ;    //利用set实现动态注入    public void setUserDao(UserDao userDao) {           this.userDao = userDao;    }    public void getUser() {           userDao.getUser();    }}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BJVtYjY2-1613699676090)(C:\Users\dell\AppData\Roaming\Typora\typora-user-images\image-20210218121729816.png)]

  • 使用动态注入后,使用权掌握在调用者手上而不是程序猿手上
  • 使用set注入后,程序不再具有主动性,而变成了被动的接受对象

这种思想,从本质上解决了问题,程序员不用再去管理对象的创建。系统的耦合性大大降低,可以更加专注的在业务上实现!这就是IOC的原型!

IOC本质

控制反转IOC,是一种设计思想,DI(依赖注入)是实现IOC的一种方法,也有人任务DI只是IOC的另一种说法。没有IOC的程序中,我们使用面向对象编程,对象的创建与对象之间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓的控制反转就是:获得依赖对象的方式反转了

采用XML方式配置bean的定义信息和实现分离的,而采用注解的方式可以把两者合为一体,bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置

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

HelloSpring

pojo

public class Hello {       private String str;    @Override    public String toString() {           return "Hello{" +                "str='" + str + '\'' +                '}';    }    public String getStr() {           return str;    }    public void setStr(String str) {           this.str = str;    }}

beans.xml

官网模板

下示例显示了基于XML的配置元数据的基本结构:

test

public class MyTest {       public static void main(String[] args) {           //获取Spring的上下文        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");        //获取对象        Hello hello = (Hello) context.getBean("hello");        System.out.println(hello);    }}

第一个例子的beans.xml的实现

IOC创建对象的方式

  1. 无参创建

  2. 有参创建

    1. index

    2. type

    3. name

小结:对象的创建会由Spring帮忙完成,我们在测试类中只是获取此对象

如有不对的地方欢迎指出,共同进步!

上一篇:$set的使用(视图不能实时更新)
下一篇:vuex的基本使用

发表评论

最新留言

不错!
[***.144.177.141]2025年04月08日 00时59分38秒