一、SpringBoot中Banner配置
1.Spring Boot项目在启动的时候会有一个默认的会有Spring图案
2.我们可以把这个图案修改为自己想要的。在src/main/resources目录下新建banner.txt文件,然后将自己的图案黏贴进去即可。ASCII图案可通过网站http://www.network-science.de/ascii/一键生成,比如生成图案后复制到banner.txt,启动项目,idea控制台输出如下:
3.banner也可以关闭,在main方法中:
public class DemoApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(DemoApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);
}
}
二、全局配置文件
1.在src/main/resources目录下,Spring Boot提供了一个名为application.properties的全局配置文件,可对一些默认配置的配置值进行修改。
2.Spring Boot允许我们在application.properties下自定义一些属性,比如:
test.demo.name=zhangsan test.demo.age=25
3.定义一个TestConfig Bean,通过@Value("${属性名}")
来加载配置文件中的属性值:
package com.spring.demo.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; /** * @description * @author 子玉18164001916 * @date 2020/7/1 9:04 * @version */ @Component public class TestConfig { @Value("${test.demo.name}") private String name; @Value("${test.demo.age}") private String age; public TestConfig() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } }
4 编写Controller,注入该Bean:
@RestController @RequestMapping("/test") public class TestController { @Autowired private TestConfig testConfig;
/** * @description * @author 子玉18164001916 * @date 2020/7/1 9:09 * @version * */ @RequestMapping(value = "/getInfo") String getInfo(){ String info= "姓名:"+ testConfig.getName() + "\n年龄:"+testConfig.getAge(); return info; }}
5.运行结果
6.在属性非常多的情况下,也可以定义一个和配置文件对应的Bean:
package com.spring.demo.controller; import org.springframework.boot.context.properties.ConfigurationProperties; /** * @description: * @author: 子玉18164001916 * @date: Created in 2020/7/1 9:16 * @version: 3.0.0 * @modified By: */ @ConfigurationProperties(prefix = "test.demo") public class TestConfiguration { private String name; private String age; private String heignt; private String weight; private String info; public String getInfo() { return info; } public void setInfo(String info) { this.info = info; } public TestConfiguration() { } public TestConfiguration(String name, String age, String heignt, String weight, String info) { this.name = name; this.age = age; this.heignt = heignt; this.weight = weight; this.info = info; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getHeignt() { return heignt; } public void setHeignt(String heignt) { this.heignt = heignt; } public String getWeight() { return weight; } public void setWeight(String weight) { this.weight = weight; } }
7.通过注解@ConfigurationProperties(prefix="
test.demo")
指明了属性的通用前缀,通用前缀加属性名和配置文件的属性名一一对应。
除此之外还需在Spring Boot入口类加上注解@EnableConfigurationProperties({
TestConfiguration.class})
来启用该配置:
@EnableConfigurationProperties({TestConfiguration.class})
8.在application.properties配置文件中,各个属性可以相互引用,如下:
test.demo.name=zhangsan test.demo.age=25 test.demo.heignt=188 test.demo.weight=150 test.demo.info=${test.demo.name}--${test.demo.name}--${test.demo.heignt}--${test.demo.weight}
三、自定义配置文件
1.定义一个对应该配置文件的Bean:
@Configuration @ConfigurationProperties(prefix="test") @PropertySource("classpath:test.properties") @Component public class TestConfigBean { private String name; private int age; }
2.注解@PropertySource("classpath:test.properties")
指明了使用哪个配置文件。要使用该配置Bean,同样也需要在入口类里使用注解@EnableConfigurationProperties({TestConfigBean.class})
来启用该配置。
四、通过命令行设置属性值
1.在运行Spring Boot jar文件时,可以使用命令java -jar xxx.jar --server.port=8081
来改变端口的值。这条命令等价于我们手动到application.properties中修改(如果没有这条属性的话就添加)server.port属性的值为8081。
如果不想项目的配置被命令行修改,可以在入口文件的main方法中进行如下设置
public static void main(String[] args) { SpringApplication app = new SpringApplication(Application.class); app.setAddCommandLineProperties(false); app.run(args); }
五、使用XML配置
1.虽然Spring Boot并不推荐我们继续使用xml配置,但如果出现不得不使用xml配置的情况,Spring Boot允许我们在入口类里通过注解@ImportResource({"classpath:some-application.xml"})
来引入xml配置文件
六、Profile配置
1.Profile用来针对不同的环境下使用不同的配置文件,多环境配置文件必须以application-{profile}.properties
的格式命,其中{profile}
为环境标识。比如定义两个配置文件:
application-dev.properties:开发环境
server.port=8080
application-prod.properties:生产环境
server.port=8081
2.至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active
属性来设置,其值对应{profile}
值。
如:spring.profiles.active=dev
就会加载application-dev.properties配置文件内容。可以在运行jar文件的时候使用命令java -jar xxx.jar --spring.profiles.active={profile}
切换不同的环境配置。