zoukankan      html  css  js  c++  java
  • spring静态获得配置文件中的属性

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package com.example.demo;
    
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.beans.factory.config.BeanPostProcessor;
    import org.springframework.context.EnvironmentAware;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;
    
    @Configuration
    public class PropertiesBean implements EnvironmentAware, BeanPostProcessor {
        private static Log logger = LogFactory.getLog(PropertiesBean.class);
        private Environment environment;
        private static PropertiesBean propertiesBean;
    
        public PropertiesBean() {
            logger.info("Construct EnvironmentProperties");
            propertiesBean = this;
        }
    
        public static PropertiesBean getInstance() {
            return propertiesBean;
        }
    
        @Override
        public void setEnvironment(Environment environment) {
            this.environment = environment;
        }
    
        public Environment getEnvironment() {
            return this.environment;
        }
    
        public String[] getActiveProfiles() {
            return this.environment.getActiveProfiles();
        }
    
        public String[] getDefaultProfiles() {
            return this.environment.getDefaultProfiles();
        }
    
        public boolean acceptsProfiles(String... profiles) {
            return this.environment.acceptsProfiles(profiles);
        }
    
        public boolean containsProperty(String key) {
            return this.environment.containsProperty(key);
        }
    
        public String getProperty(String key) {
            return this.environment.getProperty(key);
        }
    
        public String getProperty(String key, String defaultValue) {
            return this.environment.getProperty(key, defaultValue);
        }
    
        public <T> T getProperty(String key, Class<T> targetType) {
            return this.environment.getProperty(key, targetType);
        }
    
        public <T> T getProperty(String key, Class<T> targetType, T defaultValue) {
            return this.environment.getProperty(key, targetType, defaultValue);
        }
    
        public String getRequiredProperty(String key) {
            return this.environment.getRequiredProperty(key);
        }
    
        public <T> T getRequiredProperty(String key, Class<T> targetType) throws IllegalStateException {
            return this.environment.getRequiredProperty(key, targetType);
        }
    
        public String resolvePlaceholders(String text) {
            return this.environment.resolvePlaceholders(text);
        }
    
        public String resolveRequiredPlaceholders(String text) {
            return this.environment.resolveRequiredPlaceholders(text);
        }
    }

    注:

    实现 BeanPostProcessor 保证该配置类在spring容器初始化之前初始化,实现EnvironmentAware获得全局配置环境对象environment

    配置文件:

     测试类:

    package com.example.demo.service;
    
    import cn.hutool.core.lang.Console;
    import cn.hutool.http.HttpRequest;
    import cn.hutool.http.HttpResponse;
    import cn.hutool.json.XML;
    import com.alibaba.fastjson.JSONObject;
    import com.example.demo.PropertiesBean;
    import com.example.demo.dao.CmpOclOrderRepository;
    import com.example.demo.dto.supp.BaseHospCstDto;
    import com.example.demo.entry.ocl.CmpOclOrder;
    import com.example.demo.entry.supp.BaseHospCst;
    import com.example.demo.utils.ExcelUtilTest;
    import org.springframework.stereotype.Component;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.List;
    
    
    @Component
    public class TestService {
    
        public static String string = PropertiesBean.getInstance().getProperty("conf.address.smp");
    
        static{
            Console.log("初始化静态配置属性-------------------------"+string);
        }
    
    //    public void testProxy() {
    //        System.out.println("-------我是需要被代理的方法------");
    //    }
    //
    //    public void testProxy2() {
    //        System.out.println("-------我是需要被代理的方法222------");
    //    }
    }

    启动demo项目:

  • 相关阅读:
    jenkins配置发送邮件
    inux下rz、sz的简单安装
    Linux系统信息查看命令
    selenium元素定位
    windows下 maven+selenium+testng项目搭建(七)
    eclipse testng插件安装
    window maven安装(六)
    linux下Apache+Svn环境搭建(五)
    Linux实战教学笔记38:企业级Nginx Web服务优化实战(下)
    Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)
  • 原文地址:https://www.cnblogs.com/guanxiaohe/p/11736573.html
Copyright © 2011-2022 走看看