项目中经常需要进行一些配置,一般会使用springboot默认的application.properties文件,也可以自己创建配置文件

一,application.properties配置

logging.path=/Users/zhang_guang_yang/IDEA15/Logs/
logging.file=SpringBoot.log # strings
com.gy.dateFormatter=dd-MM-yyyy # strings
com.pleasure.local=/files # array
com.pleasure.urls[0]=http://www.baidu.com/
com.pleasure.urls[1]=http://www.google.com/
com.pleasure.urls[2]=http://www.blog.csdn.com/ # map
com.pleasure.admin[username]=pleasure
com.pleasure.admin[password]=123456

  读取

  1,通过一个配置类来读取:

package com.example.demo.config;

import org.springframework.boot.autoconfigure.session.StoreType;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by zhang_guang_yang on 2018/12/2.
*/ @Component
@ConfigurationProperties(prefix = "com.pleasure")
public class AppProperties { private String local;
private Map<String, String> admin = new HashMap<String ,String>();
private List<String> urls = new ArrayList<String >(); public String getLocal() {
return local;
} public void setLocal(String local) {
this.local = local;
} public Map<String, String> getAdmin() {
return admin;
} public void setAdmin(Map<String, String> admin) {
this.admin = admin;
} public List<String> getUrls() {
return urls;
} public void setUrls(List<String> urls) {
this.urls = urls;
}
}

  获取属性

@RestController
@EnableAutoConfiguration
public class PropertiesController { @Autowired
private AppProperties appProperties; @RequestMapping("/properties")
public String properties(){ System.out.println("local: " + appProperties.getLocal());
System.out.println("admin: " + appProperties.getAdmin().get("username");
return success;
}
}

  2, @Value读取

  @Value("${com.gy.dateFormatter}")
private String dateFormat;

  3,通过Environment对象读取

  

   @Autowired
private Environment evn;

  整个实现

  

package com.example.demo.controllers;

import com.example.demo.config.AppProperties;
import com.example.demo.domain.Info;
import com.sun.tools.javac.comp.Env;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* Created by zhang_guang_yang on 2018/11/20.
*/
@RestController
@EnableAutoConfiguration
public class PropertiesController { @Autowired
private AppProperties appProperties; @Value("${com.gy.dateFormatter}")
private String dateFormat; @Autowired
private Environment evn; @Autowired
private Info info; @RequestMapping("/properties")
public String properties(){ System.out.println("local: " + appProperties.getLocal());
System.out.println("admin: " + appProperties.getAdmin().get("username") + " " + appProperties.getAdmin().get("password"));
System.out.println("url: " + appProperties.getUrls().get(0));
System.out.println("date formatter: " + dateFormat); System.out.println(evn.getProperty("com.gy.dateFormatter")); System.out.println("info: " + info.getName());
return "success";
}
}

  

二,自定义properties文件和类

  1,info.properties

zgy.info.version=1.0
zgy.info.name="good mall"
zgy.info.bundleId="zgy.good.mall"

  2, 定义类

package com.example.demo.domain;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.PropertySource; /**
* Created by zhang_guang_yang on 2018/11/20.
*/ @ConfigurationProperties(prefix = "zgy.info")
@PropertySource("classpath:config/info.properties") public class Info { private String version;
private String name;
private String bundleId; public String getVersion() {
return version;
} public void setVersion(String version) {
this.version = version;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getBundleId() {
return bundleId;
} public void setBundleId(String bundleId) {
this.bundleId = bundleId;
} }

  3,注册扫描

@ComponentScan(basePackages = {"com.example.demo.domain"})
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

  4,获取属性

  

  @Autowired
private Info info;

  

SpringBoot-(5)-properties的使用的更多相关文章

  1. SpringBoot application.properties (application.yml)优先级从高到低

    SpringBoot application.properties(application.yml) 优先级从高到低 SpringBoot配置文件优先级从高到低 =================== ...

  2. springboot application.properties配置大全

    springboot application.properties配置大全 官方文档 https://docs.spring.io/spring-boot/docs/current/reference ...

  3. springboot~application.properties和application.yml的使用

    在springboot框架里进行项目开始时,我们在resource文件夹里可以存放配置文件,而格式可以有两种,properties和yml,前者是扁平的k/v格式,而后者是yml的树型结构,我们建议使 ...

  4. SpringBoot标准Properties

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  5. springboot application.properties 常用完整版配置信息

    从springboot官方文档中扒出来的,留存一下以后应该会用到 # ================================================================= ...

  6. springboot获取properties文件的配置内容(转载)

    1.使用@Value注解读取读取properties配置文件时,默认读取的是application.properties. application.properties: demo.name=Name ...

  7. springboot读取properties和yml配置文件

    一.新建maven工程:springboot-configfile-demo,完整工程如下: pom.xml <?xml version="1.0" encoding=&qu ...

  8. SpringBoot yml properties文件

    一.在SpringBoot实现属性注入: 1).添加pom依赖jar包: 1 <!-- 支持 @ConfigurationProperties 注解 --> 2 <!-- https ...

  9. springBoot application.properties 基础配置

    # 文件编码 banner.charset= UTF-8 # 文件位置 banner.location= classpath:banner.txt # 日志配置 # 日志配置文件的位置. 例如对于Lo ...

  10. SpringBoot application.properties 配置项详解

    参考: http://blog.csdn.net/lpfsuperman/article/details/78287265### # spring boot application.propertie ...

随机推荐

  1. inotify+rsync的初步配置

    inotify的简单配置  Linux内核从2.6.13开始,引入了inotify机制.通过intofity机制,能够对文件系统的变化进行监控,如对文件进行创建.删除.修改等操作,可以及时通知应用程序 ...

  2. Gym 101917 E 简单计算几何,I 最大流

    题目链接 https://codeforces.com/gym/101917 E 题意:给定一个多边形(n个点),然后逆时针旋转A度,然后对多边形进行规约,每个点的x规约到[0,w]范围内,y规约到[ ...

  3. springBoot报错Exception in thread "main" java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level

    解决办法: 如果使用的是阿里云 maven 镜像,在这会有找不到最新 Springboot 相关包的问题,请把加速镜像指向华为云: <mirror> <id>huaweiclo ...

  4. Ubuntu 16.04下使用Wine安装文件内容搜索工具Search and Replace

    说明: 1.使用的Wine版本是深度出品(Deepin),已经精简了很多没用的配置,使启动能非常快,占用资源小. 2.关于没有.wine文件夹的解决方法:在命令行上运行winecfg: 下载: (链接 ...

  5. this.class.getClassLoader().getResourceAsStream

    this.getClass().getClassLoader().getResource("template");    首先,调用对象的getClass()方法是获得对象当前的类 ...

  6. Android图片缓存之Lru算法(二)

    前言: 上篇我们总结了Bitmap的处理,同时对比了各种处理的效率以及对内存占用大小.我们得知一个应用如果使用大量图片就会导致OOM(out of memory),那该如何处理才能近可能的降低oom发 ...

  7. clipRect 介绍

    clipRect 介绍 博客分类: android   android的clip有以下两点疑问: Clip(剪切)的时机 Clip中的Op的参数的意思.   通常咱们理解的clip(剪切),是对已经存 ...

  8. Examples osgparticleshader例子学习

    Examples osgparticleshader  粒子与shader的使用 参考文档 http://blog.csdn.net/csxiaoshui/article/details/234345 ...

  9. git pull出现fatal: unable to access 'https://github.com/XXX/YYY.git'

    用cmd 发现ping不同 github.com Ping不通,这时候,只需要在host文件里做些修改就可以,首先,定位到路径 C:\Windows\System32\drivers\etc 找到ho ...

  10. 用ELK 实时处理搜索日志

    转载请标明原处:http://blog.csdn.net/hu948162999/article/details/50563110 本来这块业务 是放到SolrCloud上去的 , 然后 採用solr ...