SpringBoot入门详解

SpringBoot

SpringBoot的特点

  1. 无需xml,Spring 需要进行大量的配置,而SpringBoot 可以不需要XML配置而实现spring可以实现的功能,进一步简化了开发人员开发
  2. 约定大于配置,SpringBoot启动器的自动配置可以被开发人员的特殊要求覆盖,开发约定大于自动配置

SpringBoot项目的创建

通过maven新建quickstart项目

流程

  1. 新建好的项目和普通maven项目没有什么不同,先导入SpringBoot的依赖
  2. 导入依赖之后在java包下新建项目包,在包下新建一个名为(项目名)Application的启动类,名字要与项目对应

通过Spring提供的Spring Initializr自动创建

先确定网络状态良好,因为要访问外部地址

选择自己的JDK版本以及要导入的依赖jar包

在这里插入图片描述

正确的项目结构

在这里插入图片描述

测试SpringBoot项目创建是否成功

由于SpringBoot有内置tomcat和servlet,所以可以直接在启动类上运行项目

成功的标准

1.控制台显示为
在这里插入图片描述

2.网页url为localhost:8080 时,显示页面为

在这里插入图片描述

SpringBoot starter(启动器)

在spring中,复杂的xml配置文件和依赖让人头疼

SpringBoot把一条一条的依赖和配置整合为一个个启动器,会自动配置,无需在配置文件中手动配置

导入依赖spring-boot-starter-web可以提供开发所需的绝大多数依赖

SpringBoot parent

spring-boot-starter-parent 是所有 Spring Boot 项目的父级依赖,它被称为 Spring Boot 的版本仲裁中心,可以对项目内的部分常用依赖进行统一管理。

他提供了如下特性

  1. 默认 JDK 版本(Java 8)
  2. 默认字符集(UTF-8)
  3. 依赖管理功能
  4. 资源过滤
  5. 默认插件配置

识别 application.properties 和 application.yml 类型的配置文件

YAML配置文件

在springboot中除了properties配置文件之外还有YAML配置文件,Application*.properties和Application*.yml文件都可以被springboot识别并读取

在spring-boot-starter-parent源码中声明

<resource>
        <directory>${basedir}/src/main/resources</directory>
        <excludes>
          <exclude>**/application*.yml</exclude>
          <exclude>**/application*.yaml</exclude>
          <exclude>**/application*.properties</exclude>
        </excludes>
</resource>

YAML的语法

  1. 使用缩进表示层级关系。
  2. 缩进的空格数不重要,但同级元素必须左侧对齐。
  3. 大小写敏感。
person:		//对象
  name: zhangsan	//对象属性
  age: 30
  pets:		//数组
    -dog
    -cat
    -pig
  car:
    name: QQ
  child:
    name: zhangxiaosan
    age: 2

相同字段对比properties

person.name = zhangsan
person.age = 30
person.pets = [dog,cat,pig]
person.car.name = QQ
person.child.name = zhangxiaosan
person.child.age = 2

SpringBoot配置文件内容的绑定

前提,配置信息在SpringBoot自动识别并读取的Application*.properties和Application*.yml中

配置在其他properties的约定配置用其他方式绑定

@Value

在具体字段上定义

注入该字段的值

需要用${value}来取值

@value
private Person person;

@ConfigurationProperties

在实体类上定义

可以注入一类事物的值

@Component
@ConfigurationProperties(prefix = "person") //这里指前缀为person的内容都会被绑定-指person对象的内容
@Data
public class Person {
    private String name;
    private int age;
    private List<Object> pets;
    private Car car;
    private Child child;
}

注意点

  1. 只有在容器中的组件,才会拥有 SpringBoot 提供的强大功能。如果我们想要使用 @ConfigurationProperties 注解进行配置绑定,那么首先就要保证该对 JavaBean 对象在 IoC 容器中,所以需要用到 @Component 注解来添加组件到容器中
  2. 对象中的对象属性,比如person对象中的car对象,car的实体类需要提供get set 方法才可以成功注入,否则值为null

@PropertySource

前边提到配置在其他properties的约定配置用其他方式绑定

@PropertySource提供导入约定配置文件

@Component
@PropertySource(value = "classpath:person.properties") //导入约定配置文件
@ConfigurationProperties(prefix = "person")
@Data
public class Person {
    private String name;
    private int age;
    private List<Object> pets;
    private Car car;
    private Child child;
}

SpringBoot导入spring配置文件

@ImportResourse

有些没法自动装配到spring容器的内容,需要配置创建他的bean对象,比如导入的外部jar包内的对象

和spring一样在resources目录下新建xml配置文件,然后对其进行bean声明

需要在启动类SpringApplication类中添加@ImportResource导入Spring 配置文件

@ImportResource(locations = "classpath:/beans.xml")
@SpringBootApplication

public class Springboot01Application {

    public static void main(String[] args) {
        SpringApplication.run(Springboot01Application.class, args);
    }

}

全注解加载Spring配置

可以新建一个配置类config类,在类中完成spring的配置,代替xml配置文件

@Configuration

定义在类上,spring容器识别到该配置类

@Bean

定义在方法上,方法返回一个想配置在spring容器的bean类对象

Spring Boot Profile(多环境配置)

Spring Boot默认识别读取的Application*.properties和Application*.yml配置文件中的内容有时候需要在不同的环境下进行修改

比如开发、测试、生产时需要的是不同的环境,Spring Boot Profile可以提供针对不同的环境应用不同的配置的功能

可以声明如下四个配置文件,以这样的文件名都会被springboot自动识别读取

只需要在不同的环境在主配置文件中定义当前应用配置文件即可

application.properties:主配置文件

application-dev.properties:开发环境配置文件

application-test.properties:测试环境配置文件

application-prod.properties:生产环境配置文件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值