• 【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 />
  • 相关阅读:
    该死的兼容性
    Tip:解决DesignMode不能正确反应是否处于设计模式的问题
    Oh, ListView里竟然什么也不显示,也不报错!
    Tip: Dock is better than Anchor
    Tip: Asp.net下载默认文件名里包含空格时,如何防止FireFox只截取空格前一部分作为文件名
    c#的DateTime.Now函数详解
    C#中的委托和事件(初稿)
    C#多线程学习
    .NET(c#)new关键字的三种用法
    Silverlight – WCF – MaxItemsInObjectGraph
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/9136505.html
Copyright © 2020-2023  润新知