相关疑难解决方法(0)

如何将自定义ApplicationContextInitializer添加到Spring启动应用程序?

向Spring Web应用程序添加自定义ApplicationContextInitializer的一种方法是将其添加到web.xml文件中,如下所示.

<context-param>
    <param-name>contextInitializerClasses</param-name>
    <param-value>somepackage.CustomApplicationContextInitializer</param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)

但是因为我使用的是spring boot,有没有什么办法可以创建web.xml来添加CustomApplicationContextInitializer?

spring spring-boot

14
推荐指数
2
解决办法
2万
查看次数

如何在 SpringBootTest 中使用 Kotlin beans dsl 初始值设定项

我有一个简单的应用程序,其中有几个用 kotlin beans dsl 声明的 bean:

@SpringBootApplication
class App

val beans = beans {
    bean<A>()
}

fun main(args: Array<String>) {
    runApplication<MatchmakerApp>(*args) {
        addInitializers(beans)
    }
}

@RestController
class AppController(val a: A) {
    // some code
}

class A
Run Code Online (Sandbox Code Playgroud)

我有一个集成测试:

@RunWith(SpringRunner::class)
@SpringBootTest
class AppControllerTest {
    @Test
    fun dummyTest() {
        assert(true)
    }
}
Run Code Online (Sandbox Code Playgroud)

启动这个测试我得到

UnsatisfiedDependencyException: Error creating bean with name appController 
Caused by: NoSuchBeanDefinitionException: No qualifying bean of type 'A' available:`
Run Code Online (Sandbox Code Playgroud)

似乎在SpringBootTest创建上下文期间未调用 bean 初始值设定项。

我们需要在 SpringBootTest 中添加 kotlin bean dsl 初始值设定项吗? …

kotlin spring-boot spring-boot-test

2
推荐指数
1
解决办法
1439
查看次数

标签 统计

spring-boot ×2

kotlin ×1

spring ×1

spring-boot-test ×1