SpringBoot入门

SpringBoot入门 SpringBoot基于Sring4进行设计,继承了原有Spring框架的优秀基因。SpringBoot准确的说并不是一个框架,而是一些类库的集合。maven或者gradle项目导入相应依赖即可使用 SpringBoot,而无需自行管理这些类库的版本。 约定优于配置,简单来

SpringBoot入门

SpringBoot基于Sring4进行设计,继承了原有Spring框架的优秀基因。SpringBoot准确的说并不是一个框架,而是一些类库的集合。maven或者gradle项目导入相应依赖即可使用 SpringBoot,而无需自行管理这些类库的版本。
约定优于配置,简单来说就是你所期待的配置与约定的配置一致,那么就可以不做任何配置,约定不符合期待时才需要对约定进行替换配置。

一、SpringBoot快速入门

1.1 SpringBoot开发步骤

  1. 新建项目:创建Maven项目或者直接创建SpringBoot项目,选择所需的依赖。
  2. 引入依赖:用<parent>标签导入spring-boot-starter-parent父依赖,导入spring-boot-starter-web
  3. 创建配置文件:在src/main/resources目录下创建application.properties或application.yml文件来配置应用程序。
  4. 创建引导类:主应用类通常位于项目的根包,并使用@SpringBootApplication注解。
  5. 开发控制器类:创建一个Controller处理HTTP请求并返回响应。使用@RestController注解定义控制器,使用@RequestMapping或@GetMapping处理请求。
  6. 启动:在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注解组合来自动识别并注入配置文件值

  1. 导入依赖包spirng-boot-configuration-processor
  2. 在需要绑定的类使用注解@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即可

  1. 创建springboot时候,选择Mybatis模块
  2. MyBatis Framework 和 MySQL Driver
  3. 在配置文件中设置源参数
spring:
  datasource:
  url:
  username:
  password:
  type:com.alibaba.druid.pool.DruidDataSource
Comment