Dmi*_*ich 9 java configuration spring spring-test
注释的使用有什么不同吗?这两个注释都允许使用多个@Configuration类来创建ApplicationContext.从他们的文档@ContextConfiguration似乎更适合测试配置,并来自测试(spring-test)的工件,但是,我没有找到实际的差异.
谢谢你的任何想法!
小智 19
在 Spring Boot 中将配置类@Import(SomeConfiguration.class) 添加到现有上下文中。它对于测试切片很有用:
@DataJpaTest
@Import(SomeConfiguration.class)
class TestSomething(){...}
Run Code Online (Sandbox Code Playgroud)
在这里,您可以从 SomeConfiguration 类访问存储库和 bean。
@ContextConfiguration(classes = SomeConfiguration.class)意味着仅使用此配置,该配置无法与例如一起使用。DataJpaTest。
@Import并且@ContextConfiguration针对不同的用例而不能使用互换性.
该@Import只导入其他有用的@Configuration文件,是唯一有用的(并且据我所知)和功能上@Configuration的类.当把它@Import放在测试类上时,它将是不好的,因为它不会被处理.
@Configuration
@Import(PersistenceConfig.class)
public class MainConfig {}
Run Code Online (Sandbox Code Playgroud)
@Import如果您已禁用@Configuration类的组件扫描,或者需要组件扫描@Configuration未涵盖的包中的类,则使用可能很有用.
注:也有@ImportResource这确实为较新的基于XML配置文件相同.
反向有效,@ContextConfiguration因为它仅对基于Spring的测试类有用(测试使用SpringRunnerfor jUnit 4运行).它用于为测试提供配置参数以构成测试配置.它可以是XML,javaconfig(或其组合)的集合.
@RunWith(SpringRunner.class)
@ContextConfiguration( {MainConfig.class, TestConfig.class})
public MyTest {}
Run Code Online (Sandbox Code Playgroud)
它还允许指定用于加载这些配置的内容(以及其他配置).
| 归档时间: |
|
| 查看次数: |
4050 次 |
| 最近记录: |