1.Spring 的缺点
Springboot 也就是为了解决spring的缺点诞生的顶级框架,那么spring 有哪些缺点呢?
- 配置繁琐,配置文件太多了。
- 依赖繁琐,一旦依赖错了版本,那么今晚就要加班排查。
springboot 的优点
- 自动配置,Spring的配置可以自动装配完成
- 起步依赖,Spring可能需要一个一个jar的引入,但是Springboot 把需要的一些jar包打成一个大的jar 后面我们只要引入这一个。
- 辅助功能,比如嵌入式的服务器、安全、指标、健康检测、外部配置等等的一些功能
Springboot 并不是对Spring做了功能增强,这是更快速的使用Spring而已
2. SpringBoot 入门案例
搭建一个简单的Springboot案例
首先idea 里面创建一个maven 工程
2.1 pom 文件配置
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>SpringBootStudy</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<!-- 父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<version>2.1.8.RELEASE</version>
<artifactId>spring-boot-starter-parent</artifactId>
</parent>
<!-- 启动依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
2.2 启动类
这个大家再熟悉不过了
package com.zx;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* springboot的入口,同学们工作的时候可以看一看你们自己公司项目的入口
*/
@SpringBootApplication//固定注解后面也会详细讲解这个作用
public class Application {
//Springboot启动项目的入口,这个args的作用后面也会详细讲解
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
2.2 这边就是我们的controller
package com.zx.Ctl;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloCtl {
@RequestMapping("/hello")
public String hello(){
return "你好!";
}
}
以上就搭建了一个小型的项目!但是为什么这么简单呢,后面会一一解答
3.SpringBoot 快速构建
用idea 快速构建一个web 项目
非常的简便,当然spring官网也可以进行组装成一个压缩包,然后我们可以使用。
4.起步依赖分析
4.1 spring-boot-starter-parent
4.2 spring-boot-starter-web
5.Springboot 使用详解
5.1 spring 配置
SpringBoot 是基于约定的,很多配置都有默认值,但是有个默认的配置文件application.proterties
或者application.yml又或者是application.yaml进行配置 ,具体加载顺序看下图
5.2 yml 配置
yml 的语法特性
- 大小写敏感
- 数据值前面必须要有空格!也就是:后面必须要空格
5.3 yml 数据格式
这边就直接贴图,看一下就了然
5.4 获取yml里的数据
5.4.1 @Value
这个还是很常见的方法取值
5.4.2 Environment
5.4.3 @ConfigurationProperties
这个注解的意思就是将配置文件里面的值映射到这个对象里面,注意这个类里面必须要有geter、sertter,才可以正确的注入
package com.zx.Config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@Component
@ConfigurationProperties//这边默认就是拿配置文件里的值
//这边带值的意思就是在配置文件有对象的时候就可以只映射对象的值,而不是整个配置文件
//@ConfigurationProperties(prefix = "server")
public class HelloConfig {
private String msg1;
private String[] name;
public String getMsg1() {
return msg1;
}
public void setMsg1(String msg1) {
this.msg1 = msg1;
}
public String[] getName() {
return name;
}
public void setName(String[] name) {
this.name = name;
}
@Override
public String toString() {
return "HelloConfig{" +
"msg1='" + msg1 + '\'' +
", name=" + Arrays.toString(name) +
'}';
}
}
只要加上这个依赖就可以去除上面红色的报错
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
加上了这个,再写配置文件的时候就会有提示.,就是根据你配置文件里面需要的值的时候就很方便。