SpringApplicationBuilder


一. 使用 SpringApplication.run 直接运行

@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

默认的配置文件 application.properties 和 application.yml


2. 使用SpringApplicationBuilder指定其他配置

 如果想自己指定配置文件,可以在Spring容器的启动命令中加入参数

@SpringBootApplication
public class TestDefaultFile {
	public static void main(String[] args) {
		ConfigurableApplicationContext context = new SpringApplicationBuilder(TestDefaultFile.class)
				//指定配置文件
				.properties("spring.config.location=classpath:/test-folder/my-config.properties")
				.run(args);
		// 输出变量
		System.out.println(context.getEnvironment().getProperty("jdbc.user"));
	}
}

test-folder/my-config.properties

jdbc.user=e

@SpringBootApplication
public class TestProfiles {

	public static void main(String[] args) {
		ConfigurableApplicationContext context = new SpringApplicationBuilder(TestProfiles.class)
				.properties("spring.config.location=classpath:/test-profiles.yml")
				.properties("spring.profiles.active=oracle")
				.run(args);
		// 输出变量
		System.out.println(context.getEnvironment().getProperty("jdbc.driver"));

		// 启动第二个Spring容器,指定端口为8848
		ConfigurableApplicationContext context2 = new SpringApplicationBuilder(TestProfiles.class)
				.properties("spring.config.location=classpath:/test-profiles.yml")
				.properties("spring.profiles.active=mysql")
				.properties("server.port=8848")
				.run(args);
		// 输出变量
		System.out.println(context2.getEnvironment().getProperty("jdbc.driver"));
	}
}
@SpringBootApplication
public class TestProfiles02 {

	public static void main(String[] args) {
		ConfigurableApplicationContext context = new SpringApplicationBuilder(TestProfiles02.class)
				.properties("spring.config.location=classpath:/test-profiles.yml")
				//是否是web环境
				.web(WebApplicationType.NONE)
				//指定环境
				.profiles("oracle")
				.run(args);
		// 输出变量
		System.out.println(context.getEnvironment().getProperty("jdbc.driver"));
	}
}

 test-profiles.yml

spring:
  profiles: mysql
jdbc:
  driver:
    com.mysql.jdbc.Driver
---
spring:
  profiles: oracle
jdbc:
  driver:
    oracle.jdbc.driver.OracleDriver

@SpringBootApplication
public class TestYaml {

	public static void main(String[] args) {
		ConfigurableApplicationContext context = new SpringApplicationBuilder(TestYaml.class)
				.properties("spring.config.location=classpath:/my-config.yml")
				.run(args);

		// 输出变量
		System.out.println(context.getEnvironment().getProperty("jdbc.user"));
		System.out.println(context.getEnvironment().getProperty("jdbc.passwd"));
		System.out.println(context.getEnvironment().getProperty("jdbc.driver"));
	}
}

my-config.yml

jdbc:
  user:
    root
  passwd:
    123456
  driver:
    com.mysql.jdbc.Driver

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值