首页 > 解决方案 > Spring Boot WebFlux Kotlin 找不到路由

问题描述

我遇到了无法将路由添加到 spring 上下文的问题。我试图这样做:

@SpringBootApplication
class TestApp

fun main(args: Array<String>) {
    runApplication<TestApp>(*args) {
        addInitializers(beans {
            bean {
                RoutesConfig().router()
            }
        })
    }
}

我的路线是

@Configuration
class RoutesConfig {

    fun router() = router {
        GET("/health") { _ -> ServerResponse.ok().body(BodyInserters.fromObject("OK")) }
    }
}

我尝试添加@Bean注释,尝试通过SpringApplication.run(),尝试通过不同的配置变体,包括BeanInitializers- 没有任何效果。我究竟做错了什么?

2019-05-21 21:17:04.752  INFO 7785 --- [           main] c.p.i.s.manager.TestAppKt      : No active profile set, falling back to default profiles: default
2019-05-21 21:17:05.333  INFO 7785 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-05-21 21:17:05.345  INFO 7785 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-05-21 21:17:05.345  INFO 7785 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/9.0.12
2019-05-21 21:17:05.349  INFO 7785 --- [           main] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/Users/adm/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]
2019-05-21 21:17:05.404  INFO 7785 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-05-21 21:17:05.404  INFO 7785 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 630 ms
2019-05-21 21:17:05.420  INFO 7785 --- [           main] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2019-05-21 21:17:05.423  INFO 7785 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2019-05-21 21:17:05.423  INFO 7785 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2019-05-21 21:17:05.423  INFO 7785 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'formContentFilter' to: [/*]
2019-05-21 21:17:05.423  INFO 7785 --- [           main] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2019-05-21 21:17:05.568  INFO 7785 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-05-21 21:17:05.733  WARN 7785 --- [           main] reactor.netty.tcp.TcpResources           : [http] resources will use the default LoopResources: DefaultLoopResources {prefix=reactor-http, daemon=true, selectCount=12, workerCount=12}
2019-05-21 21:17:05.734  WARN 7785 --- [           main] reactor.netty.tcp.TcpResources           : [http] resources will use the default ConnectionProvider: PooledConnectionProvider {name=http, poolFactory=reactor.netty.resources.ConnectionProvider$$Lambda$378/429639728@4d8286c4}
2019-05-21 21:17:05.841  INFO 7785 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-05-21 21:17:05.844  INFO 7785 --- [           main] c.p.i.s.manager.TestAppKt      : Started TestAppKt in 1.495 seconds (JVM running for 2.14)

标签: spring-bootkotlin

解决方案


推荐阅读