使用Kotlin解释@Configuration @AutoConfigureAfter

时间:2016-09-27 06:26:25

标签: java spring gradle spring-boot kotlin

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

之外,Gradle构建工作正常
@Configuration
@AutoConfigureAfter(DispatcherServletAutoConfiguration::class)
open class Assembly : WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter()
{
   .
   .
  

没有为参数resourceProperties,mvcProperties,beanFactory ....

传递值

我了解WebMvcAutoConfigurationAdapter构造函数需要这些参数,但不应通过注释@Configuration@AutoConfigureAfter自动传递。

由于我对弹簧靴的全新,我不知道出了什么问题,在哪里。由于此代码已在生产中运行,因此我对于是否缺少某些本地配置或gradle conf或其他内容感到困惑。

1 个答案:

答案 0 :(得分:2)

WebMvcAutoConfigurationAdapter不应由应用程序代码直接使用。您应该改为WebMvcConfigurerAdapter

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

@AutoConfigureAfter仅控制自动配置类的顺序,对依赖注入没有影响。它也只会影响自动配置类,因此我们可能无法在Assembly类上执行任何操作。

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