更新时间:2021-01-06 16:42
本教程以 SOFABoot Core 工程为例,示范如何获取 resources/config/application.properties
中配置的属性信息。其他类型的 SOFABoot 工程也是采用类似方法,不再一 一赘述。
通过 mvn 命令生成工程原型后,可以通过下述操作获取 properties 配置的属性:
对于 application.properties
中的属性值,如果有某个类需要获取对应值,操作步骤如下:
@Value("${属性key}")
注入属性值。代码逻辑,示例如下:
@Component
public class AppConfig {
@Value("${app.config.first}")
private String appConfigFirst;
public String getAnnotationAppConfigFirst() {
return appConfigFirst;
}
}
以上述 AppConfig
为例:
方式 a:在待配置类上加一个 @Component
注解即可。
<context:component-scan base-package="com.alipay.APPNAME">
SpringBootSpringApplication
中,已添加了注解 @org.springframework.boot.autoconfigure.SpringBootApplication
。通过这个注解可以自动配置包扫描路径。方式 b 操作步骤示例如下:
@Component
注解。SOFABoot_coreDemo-service
模块下 src/main/resources/META-INF/SOFABoot_coreDemo/SOFABoot_coreDemo-service.xml
中配置这个 Bean。示例如下:
<!-- 通过 @Value 注入 sofa-config -->
<bean id="appConfig" class="com.alipay.APPNAME.configuration.AppConfig"/>
操作步骤如下:
application.properties
中,配置键值对: app.config.first=FirstConfig
。SOFABoot_coreDemo-service
模块下 启动类 src/main/java/com/alipay/APPNAME/SOFABootSpringApplication.java 中,通过示例代码,可以实现下述目标:代码逻辑,示例如下:
//configed in application.properties
final String expectedValue = "FirstConfig";
//get AppConfig
AppConfig appConfig = applicationContext.getBean(AppConfig.class);
//get value by annnotation
//获取配置
String annotationValue = appConfig.getAnnotationAppConfigFirst();
//控制台输出
System.out.println("FirstAppConfigByAnnotation = " + annotationValue);
//通过 TestCase 进行测试:
TestCase.assertEquals(expectedValue,annotationValue);
更多信息,参见 注解 @SpringBootApplication 及 Spring Boot 代码结构最佳实践。
通过注入 org.springframework.core.env.Environment
类型的 Bean 来获取 properties
配置的属性值,操作步骤如下:
Environment
对象。getProperty()
方法获取属性值。代码逻辑,示例如下:
@Component
public class AppConfig {
@Autowired
private Environment environment;
public String getEnvFirstConfigValue() {
return environment.getProperty("app.config.first");
}
}
操作步骤如下:
application.properties
中,配置键值对: app.config.first=FirstConfig
。SOFABoot_coreDemo-service
模块下 启动类 src/main/java/com/alipay/APPNAME/SOFABootSpringApplication.java 中,通过示例代码,可以实现下述目标:获取配置信息的代码逻辑,示例如下:
//configed in application.properties
final String expectedValue = "FirstConfig";
//get AppConfig
AppConfig appConfig = applicationContext.getBean(AppConfig.class);
//get value by environment
String envValue = appConfig.getEnvFirstConfigValue();
//控制台输出获取到的属性
System.out.println("FirstAppConfigByEnvironment = " + envValue);
//通过 TestCase 进行测试
TestCase.assertEquals(envValue,annotationValue);
在文档使用中是否遇到以下问题
更多建议
匿名提交