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方法来获取对应的值。