SpringBoot
SpringBoot概念
SpringBoot是基于Spring开发的,Spring Boot的设计是为了让你尽可能快的跑起来Spring应用程序并且尽可能减少你的配置。
它的设计思想是:约定大于配置
SpringBoot为了解决Spring项目依赖多,配置繁琐的问题,对Spring进行了改善和优化
- 起步依赖
起步依赖本质上是一个Maven项目对象模型,简单的说就是把某些功能的依赖包都打包到一起,你引入一个就行了。
- 自动配置
springboot的自动配置指的是springboot会自动的将一些配置类的bean注册进ioc容器。
“自动”的表现形式就是我们只需要引入我们想用功能的包,相关配置不用管,springboot就会自动注入这些配置bean。
SpringBoot项目构建
-
使用Spring Initializr方式构建Spring Boot项目
-
填写包名
- 选择对应的版本,和根据场景选择依赖
- 点击下一步,完成就可以了。项目结构介绍:
附:解决中文乱码
#设置响应为utf-8spring.http.encoding.force-response=true
配置详解
1. application.properties配置文件
我们可以在application.properties文件中定义Spring Boot项目的相关属性,当然,这些相关属性可以是系统属性、环境变量、命令参数等信息,也可以是自定义配置文件名称和位置
server.port=8081spring.config.location=spring.config.name=application
2. application.yaml配置文件
YAML文件格式是Spring Boot支持的一种JSON超集文件格式,相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式
- YAML文件的扩展名可以使用.yml或者.yaml
- application.yml文件使用 “key:(空格)value”格式配置属性,使用缩进控制层级关系。
对于不同类型的属性值,yml的配置格式不同
- value值为普通数据类型
server:port: 8081
- value值为数组和单列集合
person:hobby:- aa- bb- cc
或
person:hobby:aa,bb,cc
或
person:hobby: [aa,bb,cc]
- value值为Map集合和对象
person:map: k1: v1 k2: v2
或
person:map: {k1: v1,k2: v2}
3. 配置文件属性值注入
- 使用@ConfigurationProperties注入属性
@Component@ConfigurationProperties(prefix = "person")public class Person {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Person{" +"id=" + id +", name=\'" + name + \'\\\'\' +\'}\';}}
配置文件:
person:id: 2name: 李明
- 使用@Value
package com.mmc.springbootdemo.bean;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;@Componentpublic class Person {@Value("${person.id}")private Integer id;@Value("${person.name}")private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Person{" +"id=" + id +", name=\'" + name + \'\\\'\' +\'}\';}}
4. 自定义配置文件
之前我们的配置文件都是写在application.properties或application.yml里的,如果我们自己新建的配置文件怎么读取呢?
使用@PropertySource
@Component@ConfigurationProperties(prefix = "test")@PropertySource("classpath:test.properties")public class MyProperties {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
5. 编写配置类
在Spring Boot框架中,推荐使用配置类的方式向容器中添加和配置组件
在Spring Boot框架中,通常使用@Configuration注解定义一个配置类,Spring Boot会自动扫描和识别配置类,从而替换传统Spring框架中的XML配置文件。
@Configuration // 定义该类是一个配置类public class MyConfig { @Bean // 将返回值对象作为组件添加到Spring容器中,该组件id默认为方法名 public MyService myService(){ return new MyService(); }}