SpringBoot入门
SpringBoot基于Sring4进行设计,继承了原有Spring框架的优秀基因。SpringBoot准确的说并不是一个框架,而是一些类库的集合。maven或者gradle项目导入相应依赖即可使用 SpringBoot,而无需自行管理这些类库的版本。
约定优于配置,简单来说就是你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时才需要对约定进行替换配置。
一、SpringBoot快速入门
1.1 SpringBoot开发步骤
- 新建项目:创建Maven项目或者直接创建SpringBoot项目,选择所需的依赖。
- 引入依赖:用<parent>标签导入spring-boot-starter-parent父依赖,导入spring-boot-starter-web
- 创建配置文件:在src/main/resources目录下创建application.properties或application.yml文件来配置应用程序。
- 创建引导类:主应用类通常位于项目的根包,并使用@SpringBootApplication注解。
- 开发控制器类:创建一个Controller处理HTTP请求并返回响应。使用@RestController注解定义控制器,使用@RequestMapping或@GetMapping处理请求。
- 启动:在IDE中运行,右击主应用类并选择“Run”。
//引导类
@SpringBootApplication
public class Application{
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
依赖:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.10.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencys>
1.1 起步依赖
- starter
- SpringBoot中常见项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的。
- parent
- 所有springBoot项目要继承的项目,定义诺干个坐标版本号(依赖管理),以达到减少依赖冲突的目的
- spring-boot-starter-web(2.5.0)与spring-boot-starter-parent(2.4.6)共计57处坐标版本不同
- 实际开发
- 使用任意坐标,仅书写GAV中的GA,V由SpringBoot提供
- 如果发生坐标错误,在指定Version(要小心版本冲突)
二、SpringBoot配置信息更改
2.1 配置文件
2.1.1 全局配置文件优先级
Spring Boot 有application.properties 和 application.yaml 和 application.yml三种配置文件的方式,yaml和yml是一种JSON超文本格式文件,如果是2.4.0之前版本,优先级properties>yml>yaml;但是如果是2.4.0的版本,优先级yml>yaml>properties。
2.1.2 自动提示功能消失解决方案
找到File中ProjectStructure ---> Project Settings 下的 Facets ---> 选择Spring --> 点击右上角SpringBoot图标 --> 在Application Configuration Files下加入我们的配置文件
2.1.3 yaml数据读取
- 大小写敏感
- 属性层级关系使用多行描述,每行结尾使用冒号结束
- 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
- #表示注释
- 核心规则:数据前面要加空格与冒号隔开
#yml配置文件
enterprise:
name:sys
age:12
subjects:
- java
- xx
注入的两种方式:使用Value注入和注入environment,从environment调用
@Value(${enterprise.name})
private String name;
@Value(${enterprise.subjects[1]})
pirvate String subjects1;
//第二种
@Autowired
pirvate Environment environment;
environment.getProperty("enterprise.name");
也可以使用@Configuration和@ConfigurationProperties注解组合来自动识别并注入配置文件值
- 导入依赖包spirng-boot-configuration-processor
- 在需要绑定的类使用注解@Configuration和@ConfigurationProperties
@Configuration
@ConfigurationProperties(prefix = "前缀")
public class 实体类..
//实体类已经进入容器直接装配使用
@Autowired
private 实体类 命名;
2.2 多环境开发配置
2.2.1 yaml
spring:
profiles:
active:pro #默认环境
--- #每个环境用这个隔开
server:
port:80
spring:
config:
activate:
on-profile:pro #环境名称
---
server:
port:81
spring:
config:
activate:
on-profile:test
2.2.2 properties
需要有主配置文件来指定使用哪个环境配置文件,用后缀名区分,然后创建不同的环境文件例如:
主配置文件application.properties
spring.profiles.active=pro
不同环境配置文件application-pro.properties
server.port=80
2.3 配置文件分类
file意思是运行jar包所在地址
- SpringBoot中4级配置文件
- 1级:file :config/application.yml(最高)
- 2级:file :application.ym1
- 3级:classpath:config/application.yml4级:classpath:application.ym1(最低)
作用:
1级与2级留做系统打包后设置通用属性
3级与4级用系统开发阶段设置通用属性。
三、基于SpringBoot的SSM整合
3.1 整合JUnit
测试类与启动类包路径相同直接在测试类上使用SpringBootTest注解即可
如果不在同一路径,则需要在SpringBootTest注解后面加上启动类@SpringBootTest(classes = 启动类名.class)
//@SpringBootTest(classes = 启动类名.class)
@SpringBootTest
class SpringbootApplicationTest{}
3.2 整合Mybatis
因为对于SpringBoot就是基于Spring和SpringMVC的,所以我们只需要整合Mybatis即可
- 创建springboot时候,选择Mybatis模块
- MyBatis Framework 和 MySQL Driver
- 在配置文件中设置源参数
spring:
datasource:
url:
username:
password:
type:com.alibaba.druid.pool.DruidDataSource