spring - 在@Configuration类中使用@Autowire或@Inject可以吗

标签 spring spring-mvc-test

Spring 5,Java 8 我有多个配置文件,其中一个配置文件具有 @Autowire 依赖项。它不会在运行时提示并且工作正常,但 intellij 警告找不到这些 bean。

想知道在配置类中使用 @Autowire@Inject 是否可以。

为什么我有它是因为它是我的 websocket 配置和我的处理程序需要依赖项。

最佳答案

没关系。

@Configuration 表示类声明可能需要依赖项的 @Bean@Configuration 本身使用 @Component 进行元注释,“因此也可以利用 @Autowired/@Inject” > 就像任何常规的 @Component 一样”。

我建议您将依赖项作为方法参数传递,而不是将它们注入(inject)到字段中。它使配置类保持清晰,并强调每个 @Bean 方法所需的依赖关系。

我更喜欢

class C {
    @Bean
    public A a(B b) { new A(b); }
}

class C {
    private final B b;        

    @Bean
    public A a() { new A(b); }
}

关于spring - 在@Configuration类中使用@Autowire或@Inject可以吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55226669/

相关文章:

java - 带有 jdbc 存储的 Spring 中的 Quartz Cron 调度程序

java - 如何将java项目的maven Artifact 部署/托管到Google Cloud Storage?

spring - spring mvc 测试中的空内容

java - 对象 ='statutProduits' 验证失败。错误计数 : 2

与 Paypal 的 Spring 请求映射

spring-mvc - Spring MVC 测试用例

spring-mvc - Spring Boot 集成测试 : @AutoConfigureMockMvc and context caching

spring-mvc - Spring MVC Controller 异常测试

java - Mockito when().thenReturn() 当它应该返回空列表时返回 Null

java - 将 InitBinder 与命令对象一起使用