当前位置: 首页 > news >正文

Spring Boot基础配置

一、定制Banner

Spring 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){SpringApplicationapp=newSpringApplication(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.name=wno704's blog wno704.blog.title=Spring Boot

定义一个BlogProperties Bean,通过@Value(“${属性名}”)来加载配置文件中的属性值:

@ComponentpublicclassBlogProperties{@Value("${wno704.blog.name}")privateStringname;@Value("${wno704.blog.title}")privateStringtitle;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicvoidsetTitle(Stringtitle){this.title=title;}publicStringgetTitle(){returnthis.title;}}

编写IndexController,注入该Bean:

@RestControllerpublicclassIndexController{@AutowiredprivateBlogPropertiesblogProperties;@RequestMapping("/")Stringindex(){returnblogProperties.getName()+"——"+blogProperties.getTitle();}}

启动项目,访问http://localhost:8080,页面显示如下:

在属性非常多的情况下,也可以定义一个和配置文件对应的Bean:

@ConfigurationProperties(prefix="wno704.blog")publicclassConfigBean{privateStringname;privateStringtitle;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicvoidsetTitle(Stringtitle){this.title=title;}publicStringgetTitle(){returnthis.title;}}

通过注解@ConfigurationProperties(prefix=“mrbird.blog”)指明了属性的通用前缀,通用前缀加属性名和配置文件的属性名一一对应。

除此之外还需在Spring Boot入口类加上注解@EnableConfigurationProperties({ConfigBean.class})来启用该配置:

@SpringBootApplication@EnableConfigurationProperties({ConfigBean.class})publicclassBootApplication{publicstaticvoidmain(String[]args){SpringApplicationapp=newSpringApplication(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.name=wno704's blog wno704.blog.title=Spring Boot wno704.blog.wholeTitle=${wno704.blog.name}--${wno704.blog.title}

2.3 自定义配置文件

除了可以在application.properties里配置属性,我们还可以自定义一个配置文件。在src/main/resources目录下新建一个test.properties:

test.name=KangKang test.age=25

定义一个对应该配置文件的Bean:

@Configuration@ConfigurationProperties(prefix="test")@PropertySource("classpath:test.properties")@ComponentpublicclassTestConfigBean{privateStringname;privateintage;publicvoidsetName(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}publicvoidsetAge(intage){this.age=age;}publicintgetAge(){returnthis.age;}}

注解@PropertySource(“classpath:test.properties”)指明了使用哪个配置文件。要使用该配置Bean,同样也需要在入口类里使用注解@EnableConfigurationProperties({TestConfigBean.class})来启用该配置。

三、通过命令行设置属性值

在运行Spring Boot jar文件时,可以使用命令java -jar xxx.jar --server.port=8081来改变端口的值。这条命令等价于我们手动到application.properties中修改(如果没有这条属性的话就添加)server.port属性的值为8081。

如果不想项目的配置被命令行修改,可以在入口文件的main方法中进行如下设置:

publicstaticvoidmain(String[]args){SpringApplicationapp=newSpringApplication(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.port=8080

application-prod.properties:生产环境

server.port=8081

至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。

如:spring.profiles.active=dev就会加载application-dev.properties配置文件内容。可以在运行jar文件的时候使用命令java -jar xxx.jar --spring.profiles.active={profile}切换不同的环境配置。

代码下载

http://www.jsqmd.com/news/1398101/

相关文章:

  • FOC控制算法
  • Dify 高级实验(05):多步推理——如何把复杂问题拆解成子问题逐个击破
  • Git Patch实战指南:从紧急修复到代码评审的灵活应用
  • 十分钟让游戏画面脱胎换骨:画面增强工具 DLSS Swapper 完整上手攻略
  • 京东e卡怎么回收最合适?四类人群的渠道选择逻辑各不相同 - 京顺回收
  • 第1章-AI及智能体框架基础(5)
  • 读文献别再开一堆窗口:Obsidian PDF++ 让标注与笔记待在同一个地方
  • BetterJoy手柄适配终极指南:免费让Switch手柄在电脑上满血复活
  • 大语言模型输出控制:从提示词工程到程序化校验的完整方案
  • Windows 11缩放比例自动重置?深度剖析根源与系统级解决方案
  • STATA分组统计与回归实战:从bysort到esttab的完整指南
  • 省下几万美元的影像工作站:免费开源DICOM查看器 Horos 从安装到三维重建实战指南
  • AGC Auth(AGC认证服务)
  • 基于Python的智能垃圾分类查询系统的设计与实现毕业设计项目源码文档
  • Diablo Edit2:十分钟搞定一个暗黑破坏神2角色存档
  • 大模型健康度监测:从基础设施到认知层的全链路运维实践
  • AdaptKeyBERT:动态自适应的关键词提取技术解析与应用
  • 视频资源批量下载的终极答案:res-downloader 全平台资源嗅探与下载指南
  • STM32 Flash下载失败全解析:从硬件连接到软件配置的排错指南
  • Claude Code 入门实战:从环境配置到企业级应用指南
  • WordPress粘贴Word文档图片乱码问题解决方案
  • Horos医学影像软件入门指南:macOS免费开源DICOM阅片、3D重建与PACS连接完整教程
  • Git入门到精通:从版本控制到团队协作的完整指南
  • Python matplotlib矢量图输出全攻略:从原理到出版级实战
  • Sunshine 游戏串流完整指南:把书房里的电脑变成全家共享的私人游戏主机
  • Lua 字节码反编译实战:用 unluac 把 .luac 完整还原成可读源码
  • TXT文档自动化目录生成:Markdown与索引文件实战方案
  • 石家庄合扬包包实测:仿爱马仕工艺与真皮质感对比 - 拾闻观天地
  • Mesen NES模拟器完整指南:玩家、学习者、创作者三种身份,一套工具全部满足
  • Driver Store Explorer 驱动清理实操:一次完整的 Windows 驱动体检流程