У меня есть довольно простой проект Spring Boot, который был только что обновлен от до Spring Boot 1.3.0.M5
(который тогда полагается на Spring 4.2.0.RELEASE
), и теперь мой проект не будет компилироваться.Исключение аннотации контекста ContextConfiguration
Проект:
@Configuration
@ComponentScan
@EnableAutoConfiguration
@EnableEncryptableProperties
public class MyApp extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}
Испытание, которое не компиляции (мой единственный тест ATM):
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {MyApp.class})
@DirtiesContext
public class MyDAO_DataTest {
@Autowired
MyDAO dao;
@Test
public void whenDoingAtest() throws Exception {
//...
}
}
Когда я пытаюсь скомпилировать, он терпит неудачу на моем тестовом файле, говоря:
org.springframework.core.annotation.AnnotationConfigurationException: в AnnotationAttributes для аннотации [org.springframework.test.context.ContextC onfiguration], объявленный в [class com.example.MyDAO_DataTest], атрибут [местоположения] и его псевдоним [значение] объявлены со значениями [{}] и [{class com.example.MyApp}], но разрешено только одно объявление ,
Я нашел feature that's the origin of the exception, но я не совсем понимаю, что я могу с этим поделать.
Update I "фиксированный" вопрос, изменив эту строку:
@SpringApplicationConfiguration(classes = {MyApp.class})
... к этому:
@ContextConfiguration(classes = {MyApp.class},
loader = SpringApplicationContextLoader.class)
эффективно работать вокруг этого вопроса и позволяя себе работать, но Я не понимаю, зачем мне это нужно. @SpringApplicationConfiguration
описывается как Similar to the standard ContextConfiguration but uses Spring Boot's SpringApplicationContextLoader, так что же сделка?
Просто дружеское обратите внимание, что если вы найдете один из ответов на ваш вопрос приемлемых, не стесняйтесь [принять его] (http://stackoverflow.com/help/accepted -answer), если хотите. –