SpringBoot01_快速入门、起步依赖、配置

SpringBoot01_快速入门、配置

概念
  • 是一个快速搭建Spring项目的工具、并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式
  • 功能:
    • 快速启动:内置了各种应用服务器,默认使用tomcat
    • 自动配置:控制Springboot内部的程序哪些生效
    • 依赖管理:自动管理JAR的版本
    • 统一监控:监控服务的运行状态
入门案例
  • 创建maven工程,导包pom.xml

    • 设置父工程

      <!--springboot工程需要继承的父工程-->
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.1.8.RELEASE</version>
      </parent>
      
    • 导入项目依赖

      <!--web开发的起步依赖(集成了spring+springmvc)-->
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      
  • 定义controller层

    @RestController
    public class HelloWorld {
    
        @RequestMapping("/hello")
        public String hello(){
            return "hello SpringBoot";
        }
    }
    
  • 创建启动类

    • @SpringBootApplication 必须配置

    • SpringApplication.run(HelloApplication.class,args); 必须调用run

      @SpringBootApplication
      public class HelloApplication {
      
          public static void main(String[] args) {
              SpringApplication.run(HelloApplication.class,args);
          }
      }
      
运行main方法启动SpringBoot,访问地址:localhost:8080/hello
小结:
SpringBoot在创建项目时,使用jar的打包方式。
SpringBoot的启动类,是项目入口,运行main方法就可以启动项目。
使用SpringBoot和Spring构建的项目,业务代码编写方式完全一样。
idea快捷创建SpingBoot

在这里插入图片描述

起步依赖原理
  • 在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
  • 在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
  • 我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。
配置
  • spring工程的配置分类:

    1. POM配置
    2. Bean配置JavaConfig
    3. WEB配置
    4. 属性配置yml
  • springboot的配置文件

    • SpringBoot提供了2种配置文件类型:properties和yml/yaml

    • 默认配置文件名称:application

    • 在同一级目录下优先级为:properties > yml > yaml

properties配置类型:application.properties
#设置端口
server.port=8080
yml/yaml配置类型:application.yml application.yaml
server:
	port: 8080
YAML文件格式

YAML全称是 YAML Ain’t Markup Language,YML文件是以数据为核心的,比传统的xml方式更加简洁。

YAML文件的扩展名可以使用.yml或者.yaml。

  • springboot默认会自动加载classpath:application.yml(同级目录及其子目录)

  • 大小写敏感

  • 使用 冒号+空格 分割key和value

  • 使用 换行符+缩进 表现层级关系

  • 数据对象

    • 对象数据(map):键值对的集合

      user:
        name: 小王
        age: 18
      #行内写法
      person: {name: zhangsan}
      
    • 列表数据

      address:
        - beijing
        - chongqing
      #行内写法
      address: [beijing,shanghai]
      
    • 纯量:单个的、不可再分的值

      msg1: 'hello \n world' #单引忽略转义字符
      msg2: "hello \n world" #双引识别转义字符
      
    • 参数引用

      name: lisi
      person:
      name: ${name} # 引用上边定义的name值
      
读取配置内容的方式
  • @Value(${“配置文件的key”})

  • @Autowired注解Environment:程序启动时配置的环境变量,使用此方式获取

    @Autowired
    private Environment env;
    eng.getProperty("配置文件的key")
    
  • @ConfigurationProperties(prefix = “person”) 把一组属性注入到一个对象中

    
    @Component
    @ConfigurationProperties(prefix="person")//将person键的值注入到Person对象中
    public class Person {
    	private String name;
    	private int age;
    	(getter setter.........)
    }
    
    /*
    person:
    	name: abc
    	age: 18
    */
    
profile多环境属性配置
  • profile用来完成在不同环境下,配置动态切换功能

  • profile配置方式

  • 多profile文件方式:提供多个配置文件,每个代表一种环境。

    • application-dev.properties/yml 开发环境
    • application-test.properties/yml 测试环境
    • application-pro.properties/yml 生产环境
  • yml多文档方式:在yml中使用 — 分隔不同配置

    ---
    
    server:
    	port:8081
    	
    spring:
    	profiles:dev
    ---
    
    server:
    	port:8082
    	
    spring:
    	profiles:test
    
    ---
    spring:
    	profiles:
    		active:pro #激活pro
    
  • profile激活方式

    • 配置文件:application.properties

      #dev是环境名称,激活application-dev.properties
      spring.profiles.active=dev 
      
    • 虚拟机参数:Edit-Configuration,在VM options指定:-Dsrping.profiles.active=dev

    • 命令行参数:java -jar xxx.jar --spring.profiles.active=dev

  • springboot启动多环境之后,会自动去查找application-{环境名称}.yml

内部配置加载顺序
  • Springboot程序启动时,会从以下位置加载配置文件:

    1. file:./config/:当前项目下的/config目录下
    2. file:./ :当前项目的根目
    3. classpath:/config/:classpath的/config目录
    4. classpath:/ :classpath的根目录
  • 加载顺序为上文的排列顺序,高优先级配置的属性会生效

外部配置加载顺序

通过官网查看外部属性加载顺序:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值