ZKX's LAB

各位,Spring中的依赖注入,和控制反转怎么理解? spring中的控制反转

2020-10-05知识23

各位,Spring中的依赖注入,和控制反转怎么理解?

各位,Spring中的依赖注入,和控制反转怎么理解? spring中的控制反转

说说spring的控制反转的理解? 控制反转,和依赖注入是同一个意思,我觉得应该重点去了解什么是依赖,而后控制反转、依赖注入就有体会了;关于依赖,可以查看UML相关的书籍,重点去看java对象之间的关系是怎样的,而所谓的依赖就是对象之间的一种关系,比如a对象依赖于b对象,那么a类中就会有b类的引用(简单理解就是拥有b类的这么一个属性),也就是说a对象要想执行一个完整的功能,必须建立一个前提—a对象中的b类属性已经实例话,并且拥有b类的一切功能;现在可以去了解什么是依赖注入了,就像前面说过的,a对象想完成一个完整的功能,要先为自己的b类属性实例化,而在MVC模式中,这种现象很常见,为了简化这种实例化的工作,spring容器就产生了,它可以统一管理这种实例化频繁的操作,就是说这种本来应由自己实例化的工作交给Spring容器去控制了,也就是说控制反转了,实现的方案之一是在上述a类中提供一个关于b类的setter方法,这个方法会被Spring容器控制。

各位,Spring中的依赖注入,和控制反转怎么理解? spring中的控制反转

spring 控制反转怎么体现 考虑一下我们之前在程序中如果需要一个对象会怎么办?一般是使用new关键字,然后后面接一个类,调用构造方法,这样jvm就会给我们生产一个对象。也就是说程序员需要对象的时候完全是自己new的,比如 Person person=new Person();可是有了Spring之后,我们的对象完全交给Spring去管理类,我们直接在Spring的配置文件里配置好Bean,就可以放心大胆的不用管了.比如如下配置代码:com.wyq.Spring.Person\">;然后接下来,我们要使用这个Bean的时候该怎么办呢?只需要这样一个方法:ApplicationContext ctx=new ClassPathXmlApplicationContext(\"applicationContext.xml\");Person person=ctx.getBean(\"person\",Person.class);如上图,这样的peron实例对象就由Spring管理的,关于它是生命周期,如何生产你完全不用管,用的时候直接调用Spring提供的方法就行。这就是控制反转的体现,把对象实例化交给Spring去控制,程序员并不用管。

各位,Spring中的依赖注入,和控制反转怎么理解? spring中的控制反转

#ioc#bean#框架#spring框架

随机阅读

qrcode
访问手机版