我已使用@Configuration
包中的config
注释类配置了我的应用程序:
main
java
com.ourcompany
config
PersistenceConfig
JacksonConfig
persistence
...
Application
test
java
com.ourcompany
persistence
PersistenceTest
Application
类可以轻松获取配置:
@SpringBootApplication
public class Application {
public static void main( String[] args ) {
SpringApplication.run( Application.class, args );
}
}
然而,测试类:
@RunWith(SpringRunner.class)
@DataMongoTest
public class PersistenceTest {
...
}
除非我在注释中指定配置类的名称,否则不会获取配置:
@SpringBootTest(classes = PersistenceConfig.class)
我发现这非常不直观,因为我必须明确列出我的所有config
类。
在Spring Boot中共享配置的惯用方法是什么?
修改
最后问题在于同时包含@DataMongoTest
和@SpringBootTest
。删除@DataMongoTest
并将测试类注释为:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class PersistenceTest {
...
}
解决了这个问题。但是,关于什么是最佳实践的问题仍然存在。