Spring Boot不会从YML文件中加载属性

时间:2018-09-25 22:36:06

标签: spring spring-boot mockito

我的测试文件是:

@ActiveProfiles("test")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyApplicationTest {
    @InjectMocks
    @Autowired
    protected MyController myController;

} 

我的Controller文件是:

@RestController
@RequestMapping(value="${app.base-path}")  // Unable to load this property
public class MyController {

}

我尝试过@TestPropertySource,但是没有用。 SpringBootApplication工作正常。 @Value注释不是这种情况。 用@Value注释修饰的字段可以正常工作。

2 个答案:

答案 0 :(得分:1)

您是否将.yml文件命名为application.yml并将其放在src/main/java/resourcessrc/test/java/resources上?

将application.yml文件放在该文件夹中,它将被自动添加到类路径中,以便您可以在运行时访问该文件属性。

答案 1 :(得分:0)

默认情况下,Spring Boot将尝试加载类路径上的application.yml application-{profilename}.yml,因此您可以尝试使用application-test.yml(它将消除此问题在一个文件中定义配置文件-可能会导致您的问题。

此外,您可以尝试在bootstrap.yml之前加载的application.yml