zoukankan      html  css  js  c++  java
  • 【Java Web开发学习】Spring加载外部properties配置文件

    【Java Web开发学习】Spring加载外部properties配置文件

    转载:https://www.cnblogs.com/yangchongxing/p/9136505.html

    1、声明属性源,通过Spring的Environment检索装配属性

    Environment检索的值来源于属性源,直接从Environment中检索属性是非常方便的,尤其在Java配置中装配Bean的时候,。

    package com.qq.weixin.mp.config;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.core.env.Environment;
    
    @Configuration
    @PropertySource(value="classpath:weixin.properties")//属性源,maven配置位于srcmain
    esources目录下
    public class WeixinConfig {
        private String appid;
        private String appsecret;
        @Autowired
        Environment env;
        @Bean
        public Map<String, String> config() {
            appid = env.getProperty("appid");//检索属性
            appsecret = env.getProperty("appsecret");//检索属性
            Map<String, String> map = new HashMap<String, String>();
            map.put("appid", appid);
            map.put("appsecret", appsecret);
            return map;
        }
    }

    2、有配置类,通过占位符来装配属性

    占位符的值来源于属性源,占位符的形式为使用${...}包装的属性名称。

    package com.qq.weixin.mp.config;
    
    import java.util.HashMap;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    
    @Configuration
    @PropertySource(value="classpath:weixin.properties")//属性源
    public class WeixinConfig {
        @Value("${appid}")//占位符
        private String appid;
        @Value("${appsecret}")
        private String appsecret;
        @Bean
        public Map<String, String> config() {
            Map<String, String> map = new HashMap<String, String>();
            map.put("appid", appid);
            map.put("appsecret", appsecret);
            return map;
        }
    }

     或者定义PropertySourcesPlaceholderConfigurer Bean Spring3.1以后推荐使用

        @Bean
        public PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
            return new PropertySourcesPlaceholderConfigurer();
        }
    <context:property-placeholder />
  • 相关阅读:
    HashMap 和 Hashtable 的区别
    使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
    short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
    io--文件内容的复制
    heap与stack的区别
    序列化与反序列化
    实现反转的方法(reverse)
    final, finally, finalize 的区别
    request.getSession()、reqeust.getSession(false)和request.getSession(true)
    如何优化网页的加载速度
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/9136505.html
Copyright © 2011-2022 走看看