SpringBoot项目的parent依赖和配置文件*.properties、*.yml详解
admin
2023-02-19 18:00:09
0

1.idea创建SpringBoot项目

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

    2.SpringBoot项目的parent

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

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

  1. 定义了java的编译版本为1.8
  2. 使用UTF-8格式编码
  3. 打包操作的时候的配置
  4. 然后就是红框下面的就是插件的配置,和资源的过滤
    SpringBoot项目的parent依赖和配置文件*.properties、*.yml详解
    然后Ctrl+鼠标左键点击spring-boot-dependencies,如图
  5. 这里就是SpringBoot的依赖和依赖版本的管理,可以看到一堆的版本号
  6. 主要使用的是properties和dependencyManagement来进行版本号和依赖的管理,这既是为什么我们在SpringBoot项目引入大部分的依赖时不用写版本号,因为这是maven的依赖传递的关系,父级已经帮你定义好了版本号了
  7. 另外我们也可以使用properties和dependencyManagement在我们自己的项目中自定义自己的版本号,不使用父级帮我们提供的版本号,参考如下:

 
    
    org.springframework.data
    spring-data-releasetrain
    Fowler-SR2
    pom
    import
   
  
    
    org.springframework.boot
    spring-boot-dependencies
    2.1.2.RELEASE
    pom
    import
  
 

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

3.SpringBoot的配置文件

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

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

    最后是修改application.properties/application.yml配置文件的名字,因为我们的默认配置文件的名字也可以不叫作这个默认的名字,例如修改为myconfig.properties/myconfig.yml.如图,在启动项目的时候通过spring.config.name=myconfig来指定配置文件的名字
    SpringBoot项目的parent依赖和配置文件*.properties、*.yml详解
    另外在已经打包好的项目的时候也可以通过下面的启动命令来指定配置文件的名字

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 color = new ArrayList()
    public List getColor(){
        return this.color
    }
}

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

type:
    color:white

取值

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

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

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

相关内容

热门资讯

重磅消息“麦穗二八杠真的有挂吗... 网上科普关于“麦穗二八杠有没有挂”话题很是火热,小编也是针对麦穗二八杠作*弊开挂的方法以及开挂对应的...
重磅消息“荊州晃晃麻将是不是有... 家人们!今天小编来为大家解答荊州晃晃麻将透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里...
今日重大消息“春天扑克究竟有挂... 家人们!今天小编来为大家解答春天扑克透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
玩家分享攻略“攒劲甘肃麻将开挂... 玩家分享攻略“攒劲甘肃麻将开挂器?”(太坑了果然有挂)您好,攒劲甘肃麻将这个游戏其实有挂的,确实是有...
终于明白“小闲山城棋牌是不是有... 网上科普关于“小闲山城棋牌有没有挂”话题很是火热,小编也是针对小闲山城棋牌作*弊开挂的方法以及开挂对...
今日重磅消息“天天微乐怎么开挂... 有 亲,根据资深记者爆料天天微乐是可以开挂的,确实有挂(咨询软件无需打开...
玩家分享攻略“陕西欢喜开挂神器... 家人们!今天小编来为大家解答陕西欢喜透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很...
今日重大发现“大唐麻将有没有挂... 网上科普关于“大唐麻将有没有挂”话题很是火热,小编也是针对大唐麻将作*弊开挂的方法以及开挂对应的知识...
我来教教您“多多来了开挂神器?... 我来教教您“多多来了开挂神器?”(详细开挂教程)您好,多多来了这个游戏其实有挂的,确实是有挂的,需要...
最新引进“青鸾牛牛开挂器?”(... 最新引进“青鸾牛牛开挂器?”(太坑了果然有挂)您好,青鸾牛牛这个游戏其实有挂的,确实是有挂的,需要了...