SpringBoot介绍

SpringBoot介绍:

1.为什么需要SpringBoot?
  SpringBoot是一个基于Spring的框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。
大家可以想一想,在SpringBoot出现之前,在进行开发时,是不是进行了大量的配置文件?是不是导入了
大量的maven依赖?你是不是非常讨厌这些复杂的配置文件和大量的maven依赖呢?
  没错,SpringBoot解决了传统Spring开发过程中出现的以下问题,大大简化了开发过程:
  1.配置文件太多,太复杂;
  2.jar包太多,版本不好统一管理;
  3.发布系统需要安装Tomcat或配置插件;

2.SpringBoot的入门
  1.入门需求:
    使用springboot在页面中展示一个hello world ;
  2.入门步骤:
    2.1 创建工程,添加父工程parent;
      <!--添加父工程-->
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.4.RELEASE</version>
      </parent>
    2.2 添加起步依赖;
    <dependencies>
      <!--添加起步依赖-->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
    </dependencies>
    2.3 创建启动类;
  package com.it;

  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;

  /**
  * ToDo
  *
  * @author Lyle
  * @date 2020/3/31
  */
  @SpringBootApplication
  public class SpringBootDemoApplication {
  public static void main(String[] args) {
  SpringApplication.run(SpringBootDemoApplication.class);
  }
  }
  2.4 创建Controller
  package com.it.controller;

  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.RestController;

  /**
  * ToDo
  *
  * @author Lyle
  * @date 2020/3/31
  */
  @RestController
  public class TestController {
  @RequestMapping("/hello")
  public String showHello(){
  return "hello world";
  }
  }

  入门说明:
  父工程springboot parent锁定版本,自动配置与之匹配的jar包版本;
  springboot内嵌了Tomcat,默认端口号8080,只需导入spring-boot-starter-web的起步依赖即可;

  3. springboot的配置文件:
  application.properties
  application.yml或者application.yaml
  推荐使用application.yml;
  "#"号表示注释
  # 配置端口号,注意port:和8081之间要有空格
  server:
    port: 8081

  #简单的key=value形式
  name: zhangsan

  #数组形式,使用 - 来区分不同的元素, 元素可以是基本类型,字符串和对象类型
  cities:
    - beijing
    - shenzhen
    - changsha

  #集合类型,元素是复杂的数据类型,eg:List<Student> students;
  students:
    - name: zhangsan
    age: 18
    address: beijing

    - name: lisi
    age: 20
    address: shenzhen

    - name: ww
    age: 30
    address: changsha

  # Map集合形式,使用比较少
  maps: {"name": "zhangsan","age": "18"}

  #参数引用
  person:
    name: ${name} # 该值可以获取到上边的name定义的值:zhangsan
    age: 12

4. 获取配置文件中的值

  1. @Value形式获取简单值:
  4.1 获取简单的key=value形式
    @Value("${name}")
    private String name;

  4.2 根据索引获取数组中的值
    @Value("${cities[1]}")
    private String city1;

  4.3 获取集合中第一个元素中属性的值
    @Value("${students[0].address}")
    private String address;

  4.4 获取Map中的值
    @Value("{maps.name}")
    private String mapsname;

  4.5 获取person中name的值
    @Value("${person.name}")
    private String personname;

  

  2. 使用spring中的Environment获取值:
    在类中注入Environment对象:
      @Autowired
      private Environment environment;
    使用Environment中的getProperty()方法;

  3. @ConfigurationProperties方式获取值:
    创建POJO,并使用注解@Component将pojo交给spring来管理;
    使用注解@ConfigurationProperties来建立pojo和配置文件的映射;
    在类中注入POJO,通过pojo的get方法来获取对应的值。


原文地址:https://www.cnblogs.com/lyle-liu/p/12605825.html