项目中经常需要进行一些配置,一般会使用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;

  

最新文章

  1. day21、模块
  2. 讓 SourceTree 讀取自定的 SSH key
  3. 使用微信JSSDK自定义分享内容
  4. C#导入导出数据到Excel的通用类代码
  5. 64位Win7下编译Python3的计算机视觉库:OpenCV
  6. myPagination5.0 分页简单实例
  7. mysql对GIS空间数据的支持,包括创建空间索引
  8. TIA Portal V12不能添加新的CPU
  9. CocoaPods停在Analyzing dependencies解决方案
  10. http学习笔记(3)
  11. 微信小程序开发 导入文件说没找到.json的问题
  12. 初始js闭包&amp;事件的冒泡和捕获&amp;EVENT对象
  13. App测试流程及测试点(个人整理版)
  14. mysql&#183;事务挂起
  15. FastAdmin笔记~
  16. Git 简介及简单操作
  17. Python的数据类型1数值和字符串
  18. 直接抱过来dd大牛的《背包九讲》来做笔记
  19. [Vue]使用 vue-i18n 切换中英文
  20. Java学习全攻略--&gt;阅读官方文档

热门文章

  1. CodeForces 380.C Sereja and Brackets
  2. AC日记——Number Sequence hdu 1711
  3. (2)html 块类
  4. Careercup | Chapter 5
  5. BZOJ1007水平可見直線 計算幾何
  6. Android图片缓存之Glide进阶(四)
  7. Weblogic内存溢出及常用参数配置
  8. JavaScript校验输入的字符串是否包含特殊字符
  9. SWTBOK測试实践系列(5) -- 项目中使用手动和自己主动化的策略
  10. vue2.0 自定义 生成二维码(QRCode)组件