我是Java和Spring框架的初学者,我正在学习如何在没有Spring Boot的情况下配置应用程序。在我的@Configuration类中,我有这些代码:
@PropertySource("classpath:/application.properties")
@Configuration
@ComponentScan("org.example")
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
...
@Value("${app.person.url}")
private String propertyValue;
...
}
在 resources/application.properties 中,我写了
app.person.url = "jdbc:h2:\\test\\h2test"
。我写了一个方法来读取这个值:
public record Person(String url) {
}
@Bean
public Person getFromProperty() {
return new Person(propertyValue);
}
在我的控制器中,我编写了一个映射到
localhost:8080/data
的方法来获取 Person Bean:
@GetMapping("/data")
public Person data() {
return context.getBean(Person.class);
}
但是,当我访问
localhost:8080/data
时,我总是得到一个空网址的人:
{
"url": null
}
为什么会发生这种情况?我能做些什么来解决这个问题?我已将代码上传到github:https://github.com/dzkd2019/SpringMvcDemo/tree/master
我尝试添加类型为
PropertySourcesPlaceholderConfigurer
的静态 bean,但这不起作用。
您需要将
/
替换为 PropertySource
从这里
@PropertySource("classpath:/application.properties")
到
@PropertySource("classpath:application.properties")