java – 使用Kotlin解释@Configuration @AutoConfigureAfter

我是一个
python开发人员,对
Spring引导和gradle来说是全新的.不过我对
Java很好,并且和Kotlin一起努力.我试图在localhost上运行Spring Boot应用程序(Kotlin). Gradle构建工作正常,除了这些行

@Configuration
@AutoConfigureAfter(DispatcherServletAutoConfiguration::class)
open class Assembly : WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter()
{
   .
   .

No value passed for parameter resourceProperties, mvcProperties, beanFactory….

我知道WebMvcAutoConfigurationAdapter构造函数需要这些参数,但是它们不应该通过注释@Configuration和@AutoConfigureAfter自动传递.

由于我对春季靴子完全不熟悉,我不知道出了什么问题以及在哪里.由于此代码已经在生产中运行,所以我真的很困惑我是否缺少一些本地配置或gradle conf或其他东西.

最佳答案 WebMvcAutoConfigurationAdapter不应由应用程序代码直接使用.你应该扩展
WebMvcConfigurerAdapter.

我怀疑你已升级到Spring Boot 1.4.在该版本中,WebMvcAutoConfigurationAdapter从使用字段注入更改为构造函数注入.这意味着子类现在需要调用传递所需参数的超级构造函数.

@AutoConfigureAfter仅控制自动配置类的顺序,对依赖注入没有影响.它也只影响自动配置类,所以我们可能在你的Assembly类上什么都不做.

@Configuration也不会真正影响依赖注入.配置类可以将依赖项注入到使用@Autowired注释的字段或注入其构造函数中.以前,该构造函数也必须使用@Autowired注释,但是,如果类具有单个构造函数,则不需要注释as of Spring Framework 4.3 (Spring Boot 1.4).

点赞