码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot-(5)-properties的使用

时间:2018-12-02 22:54:56      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:logging   dmi   div   style   rop   googl   files   属性   int   

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

标签:logging   dmi   div   style   rop   googl   files   属性   int   

原文地址:https://www.cnblogs.com/yangzigege/p/10055306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!