この方法はより一般的で、サービスや Dao を注入するのと同じように、Environment クラス変数を宣言して @Autowire アノテーションを追加します。次のように:
import org.springframework.core.env.Environment; @Autowired private Environment environment;
使用方法は、getProperty(key) メソッドを通じて設定ファイル内の情報を読み取ることです。コードは次のとおりです:
1). Yml# での設定##
heycloud: jobInfo: http://www.baidu.com
//获取url(注意:key一定要写完整,有几层就写几层,每层的名字用点分隔。) String resultUrl = environment.getProperty("heycloud.jobInfo");
@Autowired private static Environment environment;//这是错误写法,environment只会是null public void test(){ //获取url String resultUrl = environment.getProperty("heycloud.jobInfo");//一旦使用environment变量就会报空指针异常 }
private static Environment environment; @Autowired public void setEnvironment(Environment environment) { this.environment = environment; } public static Environment getEnvironment() { return environment; }
import org.springframework.beans.factory.config.YamlPropertiesFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Component; /** * 配置类 * @Description 读取自定义Yml格式配置文件 * @Date 2021/3/15 10:40 * @Created by LSH */ @Component public class SqlConfig { @Bean public PropertySourcesPlaceholderConfigurer getSqlConfigurer() { PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); YamlPropertiesFactoryBean sqlConfigBean = new YamlPropertiesFactoryBean(); sqlConfigBean.setResources(new ClassPathResource("sql-properties.yml")); configurer.setProperties(sqlConfigBean.getObject()); return configurer; } }
@Value("${sql.newrest.CAS_GRID}") private String CAS_GRID;
@Slf4j @Component public class BaseConfig implements ApplicationRunner { @Autowired private Environment environment; public static String pro1; public static String pro2; public static String pro3; @Override public void run(ApplicationArguments args){ pro1=environment.getProperty("pro1"); pro2=environment.getProperty("pro2"); pro3=environment.getProperty("pro3"); } }
以上がSpringBootがYml設定ファイルを読み取る方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。