springboot基础

spring boot概述

概述:是一个全新框架,设计目的是用来简化spring应用的初始搭建以及开发过程。

spring boot程序优点:

起步依赖(简化依赖配置)

自动配置(简化常用工程相关配置)

辅助功能(内置服务器)

程序流程

1.parent

1、定义了java编译版本为1.8

2、使用UTF-8的格式

3、继承自spring-boot-dependencies,这里面定义了依赖的版本,正式因为这里面定义 了依赖的版本,所以我们在写依赖时才不用写版本号

4、执行打包操作的配置

5、自动化资源过滤

6、自动化的插件配置

7、针对application.properties和application.yml的资源过滤,包括profile定义的不同环境的配置文件,例如application-dev(pro).properies和application-dev(pro).yml

2.starter:

SpringBoot中常见的项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配资的目的。

引导类

整个boot工程的执行入口,运行main方法可以执行项目。

//spring boot配置类,默认扫描配置类所在包,加载bean不能扫描上面的包
@SpringBootApplication
public class Demo1Application {

    public static void main(String[] args) {
        //创建spring容器,加载项目里面的bean
        SpringApplication.run(Demo1Application.class, args);
    }

}

内嵌tomcat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sVdO5dKW-1686393354549)(C:\Users\lxy\AppData\Roaming\Typora\typora-user-images\image-20230605165857180.png)]

restful

优点:隐藏资源的访问行为,无法通过地址得知对资源时何种操作。

书写简化

基础配置

1.属性配置

修改服务器端口:

在resource目录下面的application.properties里面添加:

server.port=8080
2.配置文件类型

1.application.properties

2.application.yml

3.application.yaml

生效级别:properties>yml>yaml

三个配置文件不同的配置可以共存,不会被顶替。

yam数据格式

在这里插入图片描述

yaml语法规则:

1.大小写敏感

2.属性层级使用多行描述,每行结尾使用冒号结束

3.使用缩进表示层级关系,同层级左对齐,只允许使用空格

4.属性值前面加空格(属性名与属性值之间使用冒号+空格进行分隔)

5.注释使用#

AML(YAML Ain’t Markup Language)是一种可读性高,用于序列化数据的格式。它的语法简洁易读,常被用作配置文件的格式。

以下是YAML的基本语法格式:

  1. 键值对
yaml复制代码key: value
  1. 列表
yaml复制代码- item1
- item2
- item3
  1. 嵌套结构
yaml复制代码parent:
  child1: value1
  child2: 
    - subitem1
    - subitem2
  1. 注释
yaml复制代码# This is a comment
key: value # This is also a comment

在YAML中,使用缩进来表示层级关系,每个层级使用两个空格或一个制表符进行缩进。同时,YAML也支持使用---来表示文档的开始,使用...来表示文档的结束。

例如:

yaml复制代码---
key1: value1
key2:
  - item1
  - item2
key3:
  subkey1: subvalue1
  subkey2: subvalue2
...

注意,YAML对于缩进的要求非常严格,如果缩进不规范,会导致解析错误。

4.yml值的获取

1.使用@value注解

 @Value("${key}")  
private String value;
//获取yml的单行值
    @Value("${name}")
    private String name;
//获取多行里面的值
  @Value("${user.username}")
    private  String username;
//获取数组中的值
 @Value("${likes[0]}")
    private String hobby;

@Value注解用于注入YAML中的属性值。通过${key}指定属性的键名,Spring Boot会自动将YAML中的值赋给value变量。

yaml属性引用
# yaml支持转义字符
home: d:/test/user
file:
  userDir: ${home}/user.txt

2.Environment获取

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {
    //注入对象,将所有的数据都装到这个数据里面
    @Autowired
    private Environment environment;

    public void getValue() {
        //使用getProperty方法获取value
        String value = environment.getProperty("key");
        System.out.println(value);
    }
}

将一组数据封装到一个对象的中创建对应类去加载数据

使用@Configurat


ionProperties注解

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
//需要扫描
@Component
//指定配置中的属性
@ConfigurationProperties(prefix = "my")
public class MyProperties {
    private String key;

    // getter 和 setter

    public void getValue() {
        System.out.println(key);
    }
}

springboot整合

1.整合Junit

注意:spring boot 的配置默认扫描同一包下或者子包中,如何测试类不在配置类包下,@SpringBootTest中的class属性可以指定配置类,@SpringBootTest注解可以自动加载Spring应用程序上下文,使测试类能够访问应用程序中的其他bean

@SpringBootTest(classes = Demo1Application.class)
//使用contentconfig
@ContextConfiguration(classes = Demo1Application.class)

2.整合mybatis

//整合德鲁伊连接池的配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/login
    username: root
    password: admin
    druid:
      initial-size: 5
      max-active: 20
      min-idle: 3

`yaml
//整合德鲁伊连接池的配置

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/login
    username: root
    password: admin
    druid:
      initial-size: 5
      max-active: 20
      min-idle: 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值