SpringBoot项目的parent依赖和配置文件*.properties、*.yml详解

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容器管理
@Componentpublic 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")@Componentpublic 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

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

原文地址:https://www.cnblogs.com/liduchang/p/12062066.html

时间: 2024-10-10 06:01:13

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

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

在初学spring boot时,官方示例中,都是让我们继承一个spring的 spring-boot-starter-parent 这个parent: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version>

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

目录 spring-boot项目的docker集成化部署 前言 基本思路与方案 基本步骤 准备源码 服务器和基础环境 结语 1. 本文总结: 2. 后期优化: spring-boot项目的docker集成化部署 前言 据说流行的微服务和docker一起,更配哦!接下来,使用简单spring-boot项目演示docker的集成化部署的案例,在看过微笑的博客觉得不过瘾,自己动手,下面的方案与Devops的方式比较接近:希望搭建理解这种思路. 基本思路与方案 开发者push到git服务器 Jenkin

JavaEE学习之Maven配置文件pom.xml详解(转)

一.引言 (本文转载自:http://blog.csdn.net/longeremmy/article/details/9670619) 使用maven有一些时间了,一直没有好好将pom配置文件每个节点的意义好好了解一番.今天突然想来了解下:pom- project object model 项目对象模型.顾名思义,他是用来描述项目信息的,以及构建方式,依赖等.网上有一篇文章写的很详细,这里就借用一下,以备日后使用. 二.详解 1 <project xmlns="http://maven.

SpringBoot启动机制(starter机制)核心原理详解

作者:MyBug 一.前言 使用过springboot的同学应该已经知道,springboot通过默认配置了很多框架的使用方式帮我们大大简化了项目初始搭建以及开发过程.本文的目的就是一步步分析springboot的启动过程,这次主要是分析springboot特性自动装配.那么首先带领大家回顾一下以往我们的web项目是如何搭建的,通常我们要搭建一个基于Spring的Web应用,我们需要做以下一些工作:pom文件中引入相关jar包,包括spring.springmvc.redis.mybaits.l

Tomcat主配置文件Server.xml详解

Tomcat主配置文件Server.xml详解 1.软件版本 [[email protected] META-INF]# java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode) 2.server.xml组件类别 顶级组件:位于整个配置的

依赖注入容器Autofac的详解[转]

依赖注入容器Autofac的详解 发表于 2011 年 09 月 22 日 由 renfengbin 分享到:GMAIL邮箱         Hotmail邮箱 delicious digg Autofac和其他容器的不同之处是它和C#语言的结合非常紧密,在使用过程中对你的应用的侵入性几乎为零,更容易与第三方的组件集成,并且开源,Autofac的主要特性如下: 1,灵活的组件实例化:Autofac支持自动装配,给定的组件类型Autofac自动选择使用构造函数注入或者属性注入,Autofac还可以

log4j.properties配置详解与实例

log4j.properties配置详解与实例-全部测试通过 最近使用log4j写log时候发现网上的写的都是千篇一律,写的好的嘛不全,写的全一点的嘛没有一点格式,看着累.这里把网上收集到的整理了一下,并且全部都在机器上测试成功了.这么好的文档估计没有了吧? ################################################################################ #①配置根Logger,其语法为: # #log4j.rootLogger =

(2) tomcat配置文件server.xml详解

1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,所以设置极其简单,只需修改$CATALINA_HOME/conf/server.xml文件为如下内容即可,本文的tomcat安装在/application/tomcat下,因此$CATALINA_HOME=/application/tomcat. 其中大部分都采用了默认设置,只是在engine容器中添加了两个Host容器. <?xml version="1.0" encoding=&q

Mysql配置文件my.ini详解

原链接:http://blog.sina.com.cn/s/blog_718ac8bf0100pkvp.html 以下是Mysql数据库服务器配置文件my.ini的详细配置.应用场合是InnoDB引擎,2核CPU, 32位SUSE. [client] #password = your_password port  = 3306 socket  = /tmp/mysql.sock # Here follows entries for some specific programs # The MyS