SpringBoot 配置分析(一)


读取一个配置文件:

在resource下创建一个application.properties ,内容:

local.ip=192.168.1.12

配置文件默认的名字为:application.properties ,默认位置在classpath根目录下或者classpath:/config下。file:/或 file:/config


第一种方法:

在app类中读取配置文件内容

package com.gcx.spring.SpringBoot;
	
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;

/**
 * Hello world!
 *
 */
@SpringBootApplication
public class App {
	
    public static void main( String[] args ){
    	ConfigurableApplicationContext context=SpringApplication.run(App.class, args);
    	
    	System.out.println(context.getEnvironment().getProperty("local.ip"));
    }

}

运行结果:

或者用这种方式,创建一个UserConfig.java

package com.gcx.spring.SpringBoot;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class UserConfig {

	@Autowired
	private Environment env;
	
	public void show(){
		System.out.println("local.ip:"+env.getProperty("local.ip"));
	}
}
修改app类:

package com.gcx.spring.SpringBoot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * Hello world!
 *
 */
@SpringBootApplication
public class App {
	
    public static void main( String[] args ){
    	ConfigurableApplicationContext context=SpringApplication.run(App.class, args);
    	context.getBean(UserConfig.class).show();
    	//System.out.println(context.getEnvironment().getProperty("local.ip"));
    }

}

得到同样地结果

第三种方式:在application.properties 加上:

local.port=8080


在UserConfig中加入一个@Value注解

运行app类:




但我们有时候不想让配置文件叫application.properties,想要换一个名字

把application.properties 换成 gcx.properties

在运行的时候,运行Run Confiugurations   ---->在Arguments写上一句话---->Run 



但是有时候我们不满足需求,想要放在我自己指定的文件中:

首先在resources下创建一个conf 在Run Configutations

也可以支持多个,比如在文件中:E:/test/tomcat.properties

此处不需要修改

Run Configurations配置

运行结果:





第二种方法:

还可以通过这种方式获取配置文件信息:

创建jdbc.properties在resources下

url=jdbc:mysql:///springboot
DriverClass=com.mysql.jdbc.Driver


创建FileConfig.java

package com.gcx.spring.SpringBoot;

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:jdbc.properties")
public class FileConfig {

}
创建JdbcConfig.java

package com.gcx.spring.SpringBoot;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class JdbcConfig {

	@Value("${url}")
	private String url;
	@Value("${DriverClass}")
	private String DriverClass;
	
	public void show(){
		System.out.println("url:"+url);
		System.out.println("************");
		System.out.println("DriverClass:"+DriverClass);
	}
}
我们修改下App.class

package com.gcx.spring.SpringBoot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * Hello world!
 *
 */
@SpringBootApplication
public class App {
	
    public static void main( String[] args ){
    	//ConfigurableApplicationContext context=SpringApplication.run(App.class, args);
    	SpringApplication app=new SpringApplication(App.class);
    	ConfigurableApplicationContext context = app.run(args);
    	context.getBean(UserConfig.class).show();
    	
    	context.getBean(JdbcConfig.class).show();
    	context.close();
    	//System.out.println(context.getEnvironment().getProperty("local.ip"));
    }

}

运行结果:




当然也同样可以从文件中读取

在e:/test/jdbc.properties读取


在JdbcConfig.java加上两行

FileConfig.java加上一个注解

运行结果:






第三种方法:创建一个类:DataSourceProperties.java

package com.gcx.spring.SpringBoot;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix="gcx")
public class DataSourceProperties {

	private String url;
	private String DriverClass;
	private String username;
	private String password;
	
	
	
	public String getUrl() {
		return url;
	}



	public void setUrl(String url) {
		this.url = url;
	}



	public String getDriverClass() {
		return DriverClass;
	}



	public void setDriverClass(String driverClass) {
		DriverClass = driverClass;
	}



	public String getUsername() {
		return username;
	}



	public void setUsername(String username) {
		this.username = username;
	}



	public String getPassword() {
		return password;
	}



	public void setPassword(String password) {
		this.password = password;
	}



	public void show(){
		System.out.println("gcx.url:"+url);
		System.out.println("gcx.DriverClass:"+DriverClass);
		System.out.println("==================");
		System.out.println("gcx.username:"+username);
		System.out.println("gcx.password:"+password);
	}
}

@ConfigurationProperties
前缀是gcx的给匹配进来

把gcx.properties还原成application.properties,添加四个配置项


运行:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值