gpt4 book ai didi

java - 如何在 Spring Boot 中使用 @Autowire 服务

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:16:05 25 4
gpt4 key购买 nike

大家好。我对使用 Springboot 时将服务 Autowiring 到我的类中有疑问。我在 Internet 上以及 Springboot 规范中看到的所有示例都做了类似的事情(摘自 Springboot 版本 1.5.7 规范):

package com.example.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class DatabaseAccountService implements AccountService {
private final RiskAssessor riskAssessor;

@Autowired
public DatabaseAccountService(RiskAssessor riskAssessor) {
this.riskAssessor = riskAssessor;
}
// ...
}

这是一个通过其构造函数注入(inject)属性的类,通过@Autowiring 构造函数。另一种形式是像这样 @Autowire 属性:

@Autowired
private final RiskAssessor riskAssessor

但是,在我工作的地方,为了使这两种方法起作用,我被告知我需要使用这种方法:

 applicationContext.getAutowireCapableBeanFactory().autowireBean(Object.class)

他们告诉我,我需要这个才能让@Autowired 注释起作用。

现在我的问题是:为什么没有允许@Autowire 正常运行的简单注解? (类似于@AutowiredClass)。上面的方法太冗长且难以内存,所以肯定有更好的方法让@Autowired 工作在类上以注入(inject)服务,就像我们在 Grails 中所做的那样,我们只是说 def someService 它会自动注入(inject)。

最佳答案

如果您想在您的 spring-boot 应用程序中正确使用 @Autowired,您必须执行以下步骤:

  1. @SpringBootApplication添加到您的主类
  2. 添加@Service@Component注解到你要注入(inject)的类
  3. 使用您描述的两种方式之一进行 Autowiring

关于java - 如何在 Spring Boot 中使用 @Autowire 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com