Spring中注入的三种方式 - 面试宝典

举报
皮牙子抓饭 发表于 2023/08/20 09:17:27 2023/08/20
【摘要】 在Spring中,注入的三种方式分别是:构造器注入(Constructor Injection):通过在类的构造方法中声明需要注入的依赖对象,实现依赖的注入。这种方式可以在对象创建时一次性注入所有依赖,确保对象在使用前已经完全初始化。Setter方法注入(Setter Injection):通过在类中定义对应的setter方法,并在方法中声明需要注入的依赖对象,实现依赖的注入。这种方式可以在...

1692493979684309332.png

在Spring中,注入的三种方式分别是:

  1. 构造器注入(Constructor Injection):通过在类的构造方法中声明需要注入的依赖对象,实现依赖的注入。这种方式可以在对象创建时一次性注入所有依赖,确保对象在使用前已经完全初始化。
  2. Setter方法注入(Setter Injection):通过在类中定义对应的setter方法,并在方法中声明需要注入的依赖对象,实现依赖的注入。这种方式可以在对象创建后动态地注入依赖,可以在对象创建完成后根据需要更换依赖对象。
  3. 字段注入(Field Injection):通过在类中定义对应的字段,并使用注解(如@Autowired)标记需要注入的依赖对象,实现依赖的注入。这种方式可以简化代码,但可能会使代码的可读性和可维护性降低,因为依赖关系不明显。 以上三种方式都可以实现依赖注入,选择哪种方式取决于具体的情况和个人偏好。在实际开发中,通常会根据项目的需求和设计原则来选择合适的注入方式。

下面是给出三种注入方式的示例代码:

  1. 构造器注入:
javaCopy codepublic class UserService {
    private UserDao userDao;
    public UserService(UserDao userDao) {
        this.userDao = userDao;
    }
    
    // ...
}
  1. Setter方法注入:
javaCopy codepublic class UserService {
    private UserDao userDao;
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    
    // ...
}
  1. 字段注入:
javaCopy codepublic class UserService {
    @Autowired
    private UserDao userDao;
    // ...
}

以上代码示例中,UserService类中的userDao依赖对象通过不同的方式进行注入。构造器注入通过构造方法接收依赖对象,Setter方法注入通过setter方法接收依赖对象,字段注入通过@Autowired注解标记要注入的字段。具体使用哪种方式取决于实际需求和项目的设计。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。