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

时间:2019-03-18 17:11:57

标签: spring spring-mvc-test

Java 5春季5 我有多个配置文件,其中一个配置文件具有@Autowire依赖性。它不会在运行时抱怨,并且可以正常工作,但是intellij警告找不到这些bean。

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

为什么我要用它来配置我的websocket配置,而我的处理程序却需要依赖项。

1 个答案:

答案 0 :(得分:2)

没关系。

@Configuration表示一个类声明了@Bean,可能需要依赖。 @Configuration本身带有@Component的元注释,并且“因此也可以像任何常规@Autowired一样利用@Inject / @Component的优势”。

我建议您将依赖项作为方法参数传递,而不是将其注入字段中。它使配置类保持清晰,并强调每种@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); }
}