SpringBoot初识之文件配置

一 SpringBoot概念

SpringBoot设计出来是为了简化Spring应用的初始搭建以及开发过程,SpringBoot有一句很有名的话: 约定大于配置.就是在SpringBoot里面有很多约定俗成的东西,很多默认的东西已经做好了,不需要我们像做SSM框架那样去配置许多繁杂的文件,从而可以把重心转移到业务逻辑方面.

二 初始化一个SpringBook项目

由于本人使用的是IDEA社区版,无法使用IDEA创建SpringBoot项目,所以需依赖网站: start.spring.io/

  1. 打开网站,点击配置,下载压缩包
  1. 新建一个Controller包,然后新建一个Controller类,然后找到SpringbootDemoApplication类,运行这个类中的主方法,如果出现下图则代表SpringBoot初始化成功了

三 认识SpringBoot项目结构

1. SpringBoot启动

我们使用SpringBoot项目的时候,不需要手动去配置tomcat服务器,因为tomcat服务器内嵌在SpringBoot里面,我们只需要找到这个"SpringbootDemoApplication",然后运行主方法即可,不需要做其他的东西,就可以运行了,这也充分了印证那句话: 约定大于配置.

2. springBoot依赖分析

2.1 如何证明一个project是一个springboot project呢?下图就可以证明.

我们可以看到这里有一个parrent标签,groupId是org.springframework.boot,artifactid是spring-boot-starter-parent,这样说明这个项目就是一个springboot project.

2.2 spring-boot-dependencies

我们可以按住ctrl点击spring-boot-starter-parent进入spring-boot-dependencies.这里有很多很多的依赖,springboot这样做的好处在于帮我们解决了SSM框架中的存在的依赖版本冲突问题.

2.3 spring-boot-starter-web

spring-boot-starter-web(场景启动器): 帮我们导入了web模块正常运行所需要依赖的组件(JAR包)

2.4 springboot打包工具

这个工具会把springboot project打包成一个jar包,同时会把各种依赖全部打包到jar包里面,方便project上线

四 SpringBoot配置文件

1. 配置文件名字和后缀

springboot项目配置文件名字默认application,后缀名要么是.yml要么是properties,这个是springboot底层给我们做的,直接使用即可.

2 properties和yml语法

properties语法是k/v格式

ini 复制代码
server.port = 8081
server.servlet.context.path = /cctv

yml语法是树状的

yaml 复制代码
server: 
  port: 8082
  servlet: 
    context-path: /cctv

该网站可以实现properties和yml互转 www.toyaml.com/index.html

五 javaBean和配置文件绑定

  1. 在配置文件中写好对应的属性
  1. 新建javaBean,在javaBean中写好对应属性
  1. 添加@Component注解,@ConfigurationProperties注解,同时在@ConfigurationProperties注解需要写好perfix,值要和配置文件中的一一对应.

这里告诉一个小技巧,添加lombok依赖,我们就可以使用@Data注解,这个注解的作用就是在底层帮我们做了类中的get和set方法,我们就无需手动写get和set方法了.

xml 复制代码
<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.24</version>
   <scope>provided</scope>
</dependency>
  1. 在test中去测试这个是否已经绑定

这里还需介绍一个点@Value

我们有的时候需要可能仅仅是配置文件中的某一个属性,这时如果去绑定就显得有点多余了,那么我们可以使用@Value.

通过图我们可以看到,我们只需要使用某一个属性,我们可以使用@Value注解,加上spel(Spring Expression Language)就可以取到某一个值了.同时,我们看到"money"属性和其他不一样,这里其实是和java中的三目运算符大同小异,意思是如果配置文件中money有值就用配置文件中的值,如果没有纸就用冒号后面的值

相关推荐
毕设源码-郭学长1 小时前
【开题答辩全过程】以 基于springboot 的豪华婚车租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Loo国昌3 小时前
深入理解 FastAPI:Python高性能API框架的完整指南
开发语言·人工智能·后端·python·langchain·fastapi
码农水水4 小时前
米哈游Java面试被问:机器学习模型的在线服务和A/B测试
java·开发语言·数据库·spring boot·后端·机器学习·word
计算机学姐5 小时前
基于SpringBoot的美食分享交流平台
java·spring boot·后端·spring·java-ee·intellij-idea·美食
源代码•宸6 小时前
Leetcode—746. 使用最小花费爬楼梯【简单】
后端·算法·leetcode·职场和发展·golang·记忆化搜索·动规
毕设源码-朱学姐7 小时前
【开题答辩全过程】以 基于Django框架中山社区社会补助系统为例,包含答辩的问题和答案
后端·python·django
J_liaty9 小时前
分库分表深度解析
后端
AIFQuant11 小时前
如何通过股票数据 API 计算 RSI、MACD 与移动平均线MA
大数据·后端·python·金融·restful
x70x8011 小时前
Go中nil的使用
开发语言·后端·golang
REDcker12 小时前
libwebsockets库原理详解
c++·后端·websocket·libwebsockets