IOC是什么,以及IOC的注入方式【Spring的IOC是什么,注入方法有哪几种】

我会带着你远行 2023-10-13 08:12 99阅读 0赞

Spring的IOC是什么?
IOC是spring的核心,是spring的核心,它不是一种技术,而是一种思想,所谓IOC ,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。所有的类都会在spring容器中登记,告诉spring这是一个类对象,在不适用spring框架之前,我们使用一个对象通常需要在使用他的类或者方法中通过new关键字去创建该对象,而在spring框架中我们再去使用一个对象的时候,便不需要在取new这个对象了,只需要将该对象交给spring容器进行管理,子啊需要使用的时候直接从spring容器中取出即可,极大的降低了程序的耦合度,便于程序的开发和维护。

**IOC(控制反转)**是一种设计模式,用于降低程序组件之间的耦合度。在IOC中,对象的创建和依赖关系的管理都由容器负责,而不是由代码直接控制。

IOC的注入方式有三种常见的方式:

1. 构造函数注入(Constructor Injection):依赖关系通过对象的构造函数进行注入。通常,在类的构造函数中声明依赖项,并将其作为参数传递给构造函数。例如:

  1. public class MyClass {
  2. private MyDependency dependency;
  3. public MyClass(MyDependency dependency) {
  4. this.dependency = dependency;
  5. }
  6. }
  1. Setter方法注入(Setter Injection):依赖关系通过类的Setter方法进行注入。通过定义一个Setter方法来设置依赖项。例如:

    public class MyClass {

    1. private MyDependency dependency;
    2. public void setDependency(MyDependency dependency) {
    3. this.dependency = dependency;
    4. }

    }

  2. 接口注入(Interface Injection):依赖关系通过接口的方法进行注入。在要注入依赖项的类中,实现一个注入接口,并在容器中定义一个实现该接口的类。例如:

    public interface InjectionInterface {

    1. void injectDependency(MyDependency dependency);

    }

    public class MyClass implements InjectionInterface {

    1. private MyDependency dependency;
    2. @Override
    3. public void injectDependency(MyDependency dependency) {
    4. this.dependency = dependency;
    5. }

    }

4、字段注入(注解注入-最常用):通过在类中直接定义需要注入的依赖注解@Autowired和@Resource,Spring容器在创建对象的同时,将依赖直接注入到所需的字段上。
示例代码:

  1. public class UserServiceImpl implements UserService {
  2. @Autowired
  3. private UserDao userDao;
  4. }

这些都是IOC注入的常见方式,具体使用哪种方式取决于开发者的需求和偏好。
关于注解注入的两种方式@Autowired和@Resource的区别的补充:
我们在使用对象的时候最常用的方法就是使用注解的方式,而注入对象的注解有两种,一种是@Autowired另一种是@Resource,大多数初学者使用的都是第一种@Autowired,其实为了保证程序的后续的扩展和维护,建议还是使用第二种@Resource注入对象,因为@Autowired的底层是基于spring的,也就是说假如以后在Java开发领域出现了比Spring更好的框架,那么之前使用spring框架开发的项目要进行修改,把么此时的@Autowired注入对象的方式就会出现问题,而如果使用@Resource来注入对象,则不需要担心这个问题,因为@Resource的底层是基于java语言的,也就是说只要是项目使用的是java语言,无论其使用什么框架进行开发都不会出现对象的注入问题,如此一来,程序的可拓展性和可维护性也就增强了。

发表评论

表情:
评论列表 (有 0 条评论,99人围观)

还没有评论,来说两句吧...

相关阅读

    相关 什么依赖注入Ioc容器了

    背景 在很多编程语言(例如java)开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,

    相关 浅谈 IOC 什么 IOC

    本文以文字为主题,并没有代码案例,仅限于记录自己对于 IOC 的理解,文中也啥特别高深的东西,大牛和大佬可以忽略本文,以免浪费您宝贵的时间 什么是 IOC ?      I