ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Spring Boot基础配置

Spring Boot基础配置 一、定制BannerSpring Boot项目在启动的时候会有一个默认的启动图案我们可以把这个图案修改为自己想要的。在src/main/resources目录下新建banner.txt文件然后将自己的图案黏贴进去即可。ASCII图案可通过网站http://www.network-science.de/ascii/、 http://patorjk.com/software/taag/、https://www.bootschool.net/ascii、https://www.degraeve.com/img2txt.php一键生成比如输入wno生成图案后复制到banner.txt启动项目idea控制台输出如下banner也可以关闭在main方法中publicstaticvoidmain(String[]args){SpringApplicationappnewSpringApplication(BootApplication.class);app.setBannerMode(Banner.Mode.OFF);app.run(args);}二、全局配置文件在src/main/resources目录下Spring Boot提供了一个名为application.properties的全局配置文件可对一些默认配置的配置值进行修改。2.1 自定义属性值Spring Boot允许我们在application.properties下自定义一些属性比如wno704.blog.namewno704s blog wno704.blog.titleSpring Boot定义一个BlogProperties Bean通过Value(“${属性名}”)来加载配置文件中的属性值ComponentpublicclassBlogProperties{Value(${wno704.blog.name})privateStringname;Value(${wno704.blog.title})privateStringtitle;publicvoidsetName(Stringname){this.namename;}publicStringgetName(){returnthis.name;}publicvoidsetTitle(Stringtitle){this.titletitle;}publicStringgetTitle(){returnthis.title;}}编写IndexController注入该BeanRestControllerpublicclassIndexController{AutowiredprivateBlogPropertiesblogProperties;RequestMapping(/)Stringindex(){returnblogProperties.getName()——blogProperties.getTitle();}}启动项目访问http://localhost:8080页面显示如下在属性非常多的情况下也可以定义一个和配置文件对应的BeanConfigurationProperties(prefixwno704.blog)publicclassConfigBean{privateStringname;privateStringtitle;publicvoidsetName(Stringname){this.namename;}publicStringgetName(){returnthis.name;}publicvoidsetTitle(Stringtitle){this.titletitle;}publicStringgetTitle(){returnthis.title;}}通过注解ConfigurationProperties(prefix“mrbird.blog”)指明了属性的通用前缀通用前缀加属性名和配置文件的属性名一一对应。除此之外还需在Spring Boot入口类加上注解EnableConfigurationProperties({ConfigBean.class})来启用该配置SpringBootApplicationEnableConfigurationProperties({ConfigBean.class})publicclassBootApplication{publicstaticvoidmain(String[]args){SpringApplicationappnewSpringApplication(BootApplication.class);app.setBannerMode(Banner.Mode.OFF);app.run(args);}}之后便可在IndexController中注入该Bean并使用了RestControllerpublicclassIndexController{AutowiredprivateBlogPropertiesblogProperties;AutowiredprivateConfigBeanconfigBean;RequestMapping(/)Stringindex(){returnblogProperties.getName()——blogProperties.getTitle()\r\n configBean:configBean.getName()——configBean.getTitle();}}2.2 属性间的引用在application.properties配置文件中各个属性可以相互引用如下wno704.blog.namewno704s blog wno704.blog.titleSpring Boot wno704.blog.wholeTitle${wno704.blog.name}--${wno704.blog.title}2.3 自定义配置文件除了可以在application.properties里配置属性我们还可以自定义一个配置文件。在src/main/resources目录下新建一个test.properties:test.nameKangKang test.age25定义一个对应该配置文件的BeanConfigurationConfigurationProperties(prefixtest)PropertySource(classpath:test.properties)ComponentpublicclassTestConfigBean{privateStringname;privateintage;publicvoidsetName(Stringname){this.namename;}publicStringgetName(){returnthis.name;}publicvoidsetAge(intage){this.ageage;}publicintgetAge(){returnthis.age;}}注解PropertySource(“classpath:test.properties”)指明了使用哪个配置文件。要使用该配置Bean同样也需要在入口类里使用注解EnableConfigurationProperties({TestConfigBean.class})来启用该配置。三、通过命令行设置属性值在运行Spring Boot jar文件时可以使用命令java -jar xxx.jar --server.port8081来改变端口的值。这条命令等价于我们手动到application.properties中修改如果没有这条属性的话就添加server.port属性的值为8081。如果不想项目的配置被命令行修改可以在入口文件的main方法中进行如下设置publicstaticvoidmain(String[]args){SpringApplicationappnewSpringApplication(Application.class);app.setAddCommandLineProperties(false);app.run(args);}四、使用xml配置虽然Spring Boot并不推荐我们继续使用xml配置但如果出现不得不使用xml配置的情况Spring Boot允许我们在入口类里通过注解ImportResource({“classpath:some-application.xml”})来引入xml配置文件。五、Profile配置Profile用来针对不同的环境下使用不同的配置文件多环境配置文件必须以application-{profile}.properties的格式命其中{profile}为环境标识。比如定义两个配置文件application-dev.properties开发环境server.port8080application-prod.properties生产环境server.port8081至于哪个具体的配置文件会被加载需要在application.properties文件中通过spring.profiles.active属性来设置其值对应{profile}值。如spring.profiles.activedev就会加载application-dev.properties配置文件内容。可以在运行jar文件的时候使用命令java -jar xxx.jar --spring.profiles.active{profile}切换不同的环境配置。代码下载
返回列表