1.idea创建SpringBoot项目

  • idea创建SpringBoot项目应该对很多人来说已经是菜到不能到菜的操作了,但是对于初学者小白来说,还是要讲解一下的。打开idea,然后选择Spring Initializr直接点击next,这里需要说一下的是这个界面上有一个http://start.spring.io链接,这个链接就是SpringBoot的官网链接,大家可以到SpringBoot官网创建项目然后导入到idea中,这个操作就自行百度了,我想直接可以在idea中操作,为什么还要到官网上呢?可能太闲了吧
    在这里插入图片描述
  • 然后就是填写相关的信息,包括:
  • Group(组织名)
  • Artifact(为项目名称,即项目对唯一标识符)
  • Packaging:jar(打包方式)
  • Package(包名)
  • Java Version(java版本名)
    然后点击next,进入下一步
    在这里插入图片描述
  • 然后在这里选择你需要的依赖的模块,然后点击next
    在这里插入图片描述
  • 最后选择你的项目在本地的位置,点击完成
    在这里插入图片描述

2.SpringBoot项目的parent

  • 最后创建的SpringBoot的项目结构如下,打开pom文件
  • 这里定义了一个SpringBoot项目的父级项目依赖
  • 按住Ctrl键配合鼠标的左键点击进去
    在这里插入图片描述
  • 进去后重要的看红框里面的,这里又定义了一个parent父级,为spring-boot-dependencies,从名字上就大概能看出这是SpringBoot的依赖管理

然后第二个红框内所说明的内容大概如下:

  1. 定义了java的编译版本为1.8
  2. 使用UTF-8格式编码
  3. 打包操作的时候的配置
  4. 然后就是红框下面的就是插件的配置,和资源的过滤
    在这里插入图片描述
    然后Ctrl+鼠标左键点击spring-boot-dependencies,如图
  5. 这里就是SpringBoot的依赖和依赖版本的管理,可以看到一堆的版本号
  6. 主要使用的是properties和dependencyManagement来进行版本号和依赖的管理,这既是为什么我们在SpringBoot项目引入大部分的依赖时不用写版本号,因为这是maven的依赖传递的关系,父级已经帮你定义好了版本号了
  7. 另外我们也可以使用properties和dependencyManagement在我们自己的项目中自定义自己的版本号,不使用父级帮我们提供的版本号,参考如下:
<dependencyManagement>
 <dependencies>
    <dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-releasetrain</artifactId>
    <version>Fowler-SR2</version>
    <type>pom</type>
    <scope>import</scope>
  </dependency> 
  <dependency>
    <!-- Import dependency management from Spring Boot -->
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.1.2.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
  </dependency>
 </dependencies>
</dependencyManagement>

在这里插入图片描述

3.SpringBoot的配置文件

在SpringBoot项目中的配置文件的格式有两种properties和yml,文件的位置如下(优先级由高到低,这里解释一下优先级的意思就是,在项目加载jvm的时候会优先加载哪个位置的配置文件):

  • 当前项目根目录下的 config 目录下
  • 当前项目的根目录下
  • resources 目录下的 config 目录下
  • resources 目录下
    在这里插入图片描述
  • 另外除了SpringBoot给我们默认配的配置文件的位置,我们也可以自己指定配置文件的位置。如图所示,即为在项目的resources目录下创建一个myconfig目录,然后把application.properties文件放在这个目录下
    在这里插入图片描述
  • 另外我们也可以在启动项目的时候,指定配置文件的位置,这个的操作主要针对于已经打包好的项目,无法修改配置文件了
java -jar demo.jar --spring.config.location=classpath:/myconfig/

最后是修改application.properties/application.yml配置文件的名字,因为我们的默认配置文件的名字也可以不叫作这个默认的名字,例如修改为myconfig.properties/myconfig.yml.如图,在启动项目的时候通过spring.config.name=myconfig来指定配置文件的名字

在这里插入图片描述
另外在已经打包好的项目的时候也可以通过下面的启动命令来指定配置文件的名字

java -jar demo.jar --spring.config.name=myconfig

最后可以同时执行多条命令,如下:

java -jar demo.jar --spring,config.name=myconfig;spring.config.location=classpath:/myconfig/

3.SpringBoot的配置文件语法

  • properties的语法
    properties的语法是基于key和value形式的,键与值之间通过等号连接,例如:
person.name=李依依
person.age=18
  • properties中值的注入,通过@Value注解注入值,注意也要加上@Component注解将对象交给Spring容器管理
@Component
public class Person{
    @Value("${person.name}")
    private String name;
    @Value("${person.age}")
    private Integer age;
    //省略getter/setter
}
  • 类型安全的属性注入,另外SpringBoot提供了另一种注入的方式,主要解决要注入很多属性的时候,要写很多次的@Value
@Component
@PropertySource("classpath:person.properties")
@ConfigurationProperties(prefix = "person")
public class Book {
    private String name;
    private Integer age;
    //省略getter/setter
}
  • yml的语法
    相对比properties的语法yml的语法简洁明了,主次分明,语法如下:yml是以:分割的。
    数组的值的注入:
type:
    color:
        - white
        - black

这段数据绑定到一个bean对象中,如下代码:

@ConfigurationProperties(prefix="type")
@Component
public class Config{
    private List<String> color = new ArrayList<String>()
    public List<String> getColor(){
        return this.color
    }
}

当yml配置文件中取单个值的时候,如下

type:
    color:white

取值

@Value("${type.color}")
private String color

更多的教程请关注:非科班的科班,若是觉得教程对你有帮助的请点个赞,谢谢

最后分享一波java的资源,资源包括java从入门到开发的全套视频,以及java的26个项目,资源比较大,大小大概是290g左右,链接容易失效,获取的方式是关注公众号:非科班的科班,让后回复:java项目即可获得,祝大家学习愉快

SpringBoot项目的parent依赖和配置文件*.properties、*.yml详解的更多相关文章

  1. 【转】gitlab CI流水线配置文件.gitlab-ci.yml详解

    目录 GitLab CI流水线配置文件.gitlab-ci.yml详解 实验环境 GitLab CI介绍 .gitlab-ci.yml 配置参数 参数详解 script image services ...

  2. 配置文件elasticsearch.yml详解

    在es根目录下的config目录中有elasticsearch.yml配置文件,es加载使用的yml格式配置 17行:cluster.name: 自定义集群名称(强烈推荐默认名称elasticsear ...

  3. elasticsearch配置文件(elasticsearch.yml)详解

    来自:http://www.searchtech.pro/articles/2013/02/18/1361194291548.html elasticsearch的config文件夹里面有两个配置文 ...

  4. Spring Boot 不使用默认的 parent,改用自己的项目的 parent

    在初学spring boot时,官方示例中,都是让我们继承一个spring的 spring-boot-starter-parent 这个parent: <parent> <group ...

  5. 关于springboot项目的jar和war两种打包方式部署的区别

    关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...

  6. SpringCloud升级之路2020.0.x版-5.所有项目的parent与spring-framework-common说明

    本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 源代码文件:htt ...

  7. spring-boot项目的docker集成化部署(一)

    目录 spring-boot项目的docker集成化部署 前言 基本思路与方案 基本步骤 准备源码 服务器和基础环境 结语 1. 本文总结: 2. 后期优化: spring-boot项目的docker ...

  8. springboot项目的maven的pom.xml文件第一行报错 Unknown Error

    springboot项目的maven的pom.xml文件第一行报错 Unknown Error https://blog.csdn.net/mini_jike/article/details/9239 ...

  9. Mybatis系列全解(四):全网最全!Mybatis配置文件XML全貌详解

    封面:洛小汐 作者:潘潘 做大事和做小事的难度是一样的.两者都会消耗你的时间和精力,所以如果决心做事,就要做大事,要确保你的梦想值得追求,未来的收获可以配得上你的努力. 前言 上一篇文章 <My ...

随机推荐

  1. css3 移动端旋转动画暂停

    音乐播放图片旋转动画 ios不支持暂停: animation-play-state: paused; @-webkit-keyframes rotate{ 100% { transform: rota ...

  2. sublimeText 3使用教程

    工欲善利其事必先利其器,sublime作为一款轻量.便捷的编译工具,集成了很多插件,功能强大,深受大家的喜爱.掌握好sublime的具体用法,必会为你的工作带来极大的便利!好了,闲话不多说了,下面开始 ...

  3. ArcGIS-PictureMarkerSymbol-向地图添加图片标记

    1.基于4.13 版本 <link rel="stylesheet" href="https://js.arcgis.com/4.13/esri/themes/li ...

  4. Find工具

    Find工具主要用于操作系统文件.目录的查找, 1.语法参数格式为: Find工具的语法格式:find path(路径) -option(参数) action(动作): PATH路径:可以任意路径.绝 ...

  5. 【Linux】ssh-copy-id三步实现ssh免密登陆

    一.本地机器上使用ssh-keygen产生公钥私钥对 ssh-keygen -t rsa -C "XXXX@163.com" --->执行完会在~/.ssh/下生成公钥私钥对 ...

  6. redis的事务操作

    事务是一个单独的隔离操作:事务中的所有命令都会序列化.按顺序地执行.事务在执行的过程中,不会被其他客户端发送来的命令请求所打断. 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行. 一 ...

  7. js实现php函数urlencode

    原文链接:https://www.cnblogs.com/xiaochaohuashengmi/archive/2010/05/28/1746168.html 本文介绍了php函数urlencode的 ...

  8. DEVOPS技术实践_20:串联多个job执行

    在jenkins可能会有战役中场景,就是在一个job执行完之后,把这个执行结果作为另一个job的执行条件 比如A执行完,如果A执行成功,则执行B,如果失败则执行C 1 前期准备 A任务 import ...

  9. JavaScript中浅拷贝和深拷贝的区别

    JavaScript数据类型 基础数据类型:保存在栈内存中的简单数据段 ,有undefined,boolean,number,string,null 引用数据类型:Array,object,Funct ...

  10. $AT2163\ Median\ Pyramid\ Easy$ 构造

    正解:构造 解题报告: 传送门$QwQ$ 考虑如果有两个相邻格子是相同数字那么它们以上这两列就都会是这列数字(显然$QwQ$? 所以考虑只要构造出第$n-1$行的中心和中心右侧($or$左侧一样的$Q ...