spring boot 通过继承PropertyPlaceholderConfigurer获取的Properties为null
时间: 2024-02-21 19:02:25 浏览: 176
Spring中PropertyPlaceholderConfigurer的使用
在Spring Boot中,可以使用application.properties或application.yml文件来配置应用程序的属性。如果你想在应用程序中使用这些属性,可以使用@Value注释或实现EnvironmentAware接口来获取它们。但是,如果你使用继承PropertyPlaceholderConfigurer来获取属性,可能会出现Properties为null的情况。这是因为在Spring Boot中,这种方式不再适用。
相反,你可以使用@ConfigurationProperties注释来获取属性。首先,在类上添加@ConfigurationProperties注释,并指定前缀。然后,添加相应的属性并使用@Autowired注释进行注入。这样,Spring Boot会自动将属性值注入到你的bean中。
以下是一个示例代码:
```
@Configuration
@ConfigurationProperties(prefix = "myapp")
public class MyAppProperties {
private String name;
private String version;
// getters and setters
}
@Service
public class MyService {
@Autowired
private MyAppProperties myAppProperties;
// use myAppProperties
}
```
在上面的示例中,MyAppProperties类使用@ConfigurationProperties注释指定前缀“myapp”,并定义了两个属性name和version。MyService类使用@Autowired注释将MyAppProperties bean注入到myAppProperties字段中。现在,你可以在MyService类中使用myAppProperties字段来获取属性值了。
阅读全文