Spring面试+工作必会知识点——IoC

本文深入探讨了依赖注入(DI)的概念,解释了其在软件工程中的重要性,特别是通过Spring框架实现DI的过程。文章详细介绍了DI的四种方式:Setter注入、接口注入、构造函数注入和注解注入,并通过实例展示了如何在Spring环境中配置和使用这些注入方式。

学习三要素:是什么?为什么?怎么做?

1.是什么?为什么?

传统的控制正转:各个底层代码通过之间的关系相互依赖,控制正转的情况下,底层控制上层,从而会导致牵一发而动全身,代码维护工作量超级大;

反转:通过依赖注入,下层的依赖注入到上层,从而实现上层控制下层代码。

2.怎么做?

依赖注入的方式(自己搜一搜项目里用到哪些)

1.Setter: 实现特定属性的pubilc setter方法,来为IOC容器调用所依赖注入的对象

2.Interface: 实现特定的接口,使IOC容器注入所依赖类型的对象

3.Constructor:构造函数,实现特定参数的构造函数,在创建对象时,使IOC注入

4.Annotation: 基于注解的,通过java的注解机制,来让IOC注入依赖的对象,如autowired

看一个基于配置的实现

Spring就是小卖部,你就是A对象,水就是B对象
        第一:在Spring中声明一个类:A
        第二:告诉Spring,A需要B

        假设A是UserAction类,而B是UserService类

<bean id="userService" class="org.leadfar.service.UserService"/>  
<bean id="documentService" class="org.leadfar.service.DocumentService"/>  
<bean id="orgService" class="org.leadfar.service.OrgService"/>  
  
<bean id="userAction" class="org.leadfar.web.UserAction">  
     <property name="userService" ref="userService"/>  
</bean>  

        在Spring这个商店(工厂)中,有很多对象/服务:userService,documentService,orgService,也有很多会员:userAction等等,声明userAction需要userService即可,Spring将通过你给它提供的通道主动把userService送上门来,因此UserAction的代码示例类似如下所示:

package org.leadfar.web;  
public class UserAction{  
     private UserService userService;  
     public String login(){  
          userService.valifyUser(xxx);  
     }  
     public void setUserService(UserService userService){  
          this.userService = userService;  
     }  
}  

        在这段代码里面,你无需自己创建UserService对象(Spring作为背后无形的手,把UserService对象通过你定义的setUserService()方法把它主动送给了你,这就叫依赖注入!),当然咯,我们也可以使用注解来注入。Spring依赖注入的实现技术是:动态代理
【这段是我抄的,原文地址(https://blog.youkuaiyun.com/qq_32575047/article/details/79056141 )】

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值