SpringBoot介绍

SpringBoot

一、介绍

我们在搭建传统SSM项目时,通常需要导入很多依赖,但每种依赖又有许多版本,这就很容易出现依赖冲突。此外,繁琐的配置也是一大痛点,太多了,让人很难记住,因此SpringBoot诞生了。

SpringBoot是对Spring的深度封装,基于约定优于配置的思想,提供了大量的默认配置和实现。能够让我们更加便捷的开发Spring应用,底层还是Spring的技术。使用SpringBoot之后,程序员只需按照它规定的方式去进行程序代码的开发即可,而无需再去编写一堆复杂的配置。

- 版本锁定: 继承了 spring-boot-starter-parent 父工程,它内部已经锁定了一些常见依赖的版本号,故而在我们自己开发的工程中无需再指定依赖的版本。 - 起步依赖:SpringBoot根据场景将各种依赖组装成了一个个的集合(starter),我们根据功能引入指定的starter即可。 - 默认配置:SpringBoot的约定大于配置,即SpringBoot的大量配置都有默认值,如果我们不去写配置就使用默认的。 比如说:tomcat默认端口 8080 等等 - 内置Tomcat:SpringBoot内置了一个tomcat,使用它开发的程序无需再进行tomcat部署,可直接运行

二、SpringBoot的配置文件

SpringBoot的配置文件类型有以下三种:properties,yaml,yml。

SpringBoot是基于约定的,很多配置都有默认值,但也允许自定义配置,具体做法是在resources下创建配置文件:application.yaml 或者 application.yml 或者 application.properties 目前版本中, SpringBoot启动时会依次加载顺序:properties > yml > yaml

我们今天讲一下yml类型的配置文件:
1.语法

2.数据格式

3.读取配置

方法一(@Value 在bean中直接读取):

@Value("${name}")  //普通键值对
private String name;

@Value("${user.username}")  //对象属性
private String username;

@Value("${user.addressList[1]}") //数组或集合
private String address;

方法二(@ConfigurationProperties:把配置绑定到一个bean上,要求配置文件中的二级属性名跟实体的属性名相同):

@ConfigurationProperties(prefix = "user")  //prefix的值为对象名
@Component
public class User {

    //实体类的属性名需要和配置文件的属性名保持一致
    private String username;
    private String password;
    private List<String> addressList;

三.多环境配置

​ 在实际开发中,会有很多的环境:开发环境、测试环境、生产环境,其中的配置可能不一致 ​ SpringBoot支持通过配置文件的命名规则来实现多环境配置

环境切换:
  • IDEA

  • 命令行

    项目打jar包
    pom.xml 加入配置

    myboot org.springframework.boot spring-boot-maven-plugin repackage
  • 命令行指定运行参数:

指定使用test环境

java –jar springboot.jar --spring.profiles.active=test

指定使用test环境,端口号为9090

java –jar springboot.jar --spring.profiles.active=test --server.port=9090

四、常用功能

  • 日志功能:

Spring支持多种日志级别,通过配置文件,可以输出指定级别的日志

打印日志:

@RestController
@Slf4j  //lombok.extern.slf4j.Slf4j 用于记录日志
public class IndexController {

    @GetMapping("/log")
    public String log(){
        log.debug("debug日志");
        log.info("info日志");
        log.warn("warn日志");
        log.error("error日志");
        return "success";
    }
  • 单元测试:
1.使用单元测试之前需导入依赖:

org.springframework.boot

spring-boot-starter-test

2.测试类编写:

测试类位置: 必须在启动类所在包或子包下
测试类标记注解:@SpringBootTest

@SpringBootTest   //表示当前类是一个SpringBoot测试类,位置必须在引导类所在包或者子包下。如果不在引导类的包下,则必须增加一个属性
//@SpringBootTest(classes = QuickStartApplication.class)   //如果不在引导类的包下,则必须增加一个属性,手动指定引导类的Class对象

public class UserTest {

    @Autowired
    private User user;

    @Test    //现在是Junit5   org.junit.jupiter.api.Test;
    public void testUser(){
        System.out.println(user);
    }

}
  • 静态资源访问:

目录:src/main/resources/static

访问(实际访问时不需要写static目录):

posted @ 2024-01-31 14:49  海a  阅读(57)  评论(0)    收藏  举报