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. STM32 命名方法

    1.STM32型号的说明:以STM32F103RBT6这个型号的芯片为例,该型号的组成为7个部分,其命名规则如下: STM32  ST公司生产的Cortex-M内核的32位微控制器 F F代表产品类型 ...

  2. The fifth day of Crawler learning

    使用mongoDB 下载地址:https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl ...

  3. 3.24 7.13 Python基础汇总

    对象类型 类型名称 示例 简要说明 备注 数字 int,float,complex 1234,3.14,1.3e5,3+4j 数字大小没有限制 十六进制用0x前缀和0-9,a-f表示 字符串 str ...

  4. vc++ 监控指定路径下文件变化

    参考MSDN文档 https://docs.microsoft.com/zh-cn/windows/desktop/api/winbase/nf-winbase-readdirectorychange ...

  5. 听说你的 IDEA 昨天掉链子了?松哥给你准备了大招

    昨天一直在忙,中午抽空瞅了一眼技术群,天呐,竟然都在切磋 IDEA 激活码的事情,瞬间明白可能 jetbrains 又在搞事情了. 我大概了解了下,这次出事的主要是 2019 版,之前的 2018 版 ...

  6. 01_console 你真的了解吗,不曾了解过得console~

    对于 console 你只知道 console.log 吗? 那你就 out 啦!!! // 1. 显示信息 console.log('hello'); console.info('信息'); con ...

  7. zabbix监控web应用日志报警并发送消息到钉钉

    首先在钉钉上开启钉钉机器人功能 说明:自定义关键词是zabbix发送过来的消息内容必须含有你定义的ERROR或者error字段,否则消息无法发送过来 ip地址段:一般都是zabbix-server的I ...

  8. SpringBoot-2.1.1系列二:使用websocket

    1.什么是websocket? WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信--允许服务器主动发送信息给客户端. 2.为什么需要使用 ...

  9. vue兄弟组件传值——事件总线

    1.创建一个js文件,例如msg.js,放到合适位置,例如components中,或者其他位置也行.然后在兄弟两个组件中分别引入msg.js文件 msg.js: import Vue from 'vu ...

  10. Java读取数据库中的xml格式内容,解析后修改属性节点内容并写回数据库

    直接附代码: 1.测试用的xml内容 <mxGraphModel> <root> <mxCell id="-1" /> <mxCell i ...