Java最新springboot学习笔记(五)--springboot的配置文件(2),2024年大厂Java面经

复习的面试资料

这些面试全部出自大厂面试真题和面试合集当中,小编已经为大家整理完毕(PDF版)

  • 第一部分:Java基础-中级-高级

image

  • 第二部分:开源框架(SSM:Spring+SpringMVC+MyBatis)

image

  • 第三部分:性能调优(JVM+MySQL+Tomcat)

image

  • 第四部分:分布式(限流:ZK+Nginx;缓存:Redis+MongoDB+Memcached;通讯:MQ+kafka)

image

  • 第五部分:微服务(SpringBoot+SpringCloud+Dubbo)

image

  • 第六部分:其他:并发编程+设计模式+数据结构与算法+网络

image

进阶学习笔记pdf

  • Java架构进阶之架构筑基篇(Java基础+并发编程+JVM+MySQL+Tomcat+网络+数据结构与算法

image

  • Java架构进阶之开源框架篇(设计模式+Spring+SpringMVC+MyBatis

image

image

image

  • Java架构进阶之分布式架构篇 (限流(ZK/Nginx)+缓存(Redis/MongoDB/Memcached)+通讯(MQ/kafka)

image

image

image

  • Java架构进阶之微服务架构篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 语法结构 :key:空格 value

配置文件的作用 :修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;

比如我们可以在配置文件中修改Tomcat 默认启动的端口号!测试一下!

server.port=8081

1.2、yaml基础语法


说明:语法要求严格!

1、空格不能省略

2、以缩进来控制层级关系,只要是左边对齐的一列数据都是同一个层级的。

3、属性和值的大小写都是十分敏感的。

举例:

1、字面量:普通的值【数字,布尔,字符串】

字面量直接卸载后面就可以,字符串默认不用加上双引号或者单引号

k: v

注意:

  • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;比如 :name: “ni \n hao” 输出 :ni换行 hao

  • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;比如 :name: “ni\n hao” 输出 :ni换行 hao

2、对象、Map(键值对)

#对象、Map格式

k:

v1:

v2:

在下一行来写对象的属性和值得关系,注意缩进;比如:

student:

name: nihao

age: 3

行内写法:

student: {name: qinjiang,age: 3}

3、数组(List、set)

用 - 值表示数组中的一个元素,比如:

pets:

  • cat

  • dog

  • pig

行内写法:

pets: [cat,dog,pig]

修改SpringBoot的默认端口号

配置文件中添加,端口号的参数,就可以切换端口;

server:

port: 8082

2、注入配置文件

=======================================================================

yaml文件更强大的地方在于,他可以给我们的实体类直接注入匹配值!

2.1、yaml注入配置文件


1、在springboot项目中的resources目录下新建一个文件 application.yml

2、编写一个实体类 Dog;

使用@Value主机给bean注入属性值

package com.study.pojo;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.ToString;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

/**

  • @Description :

  • @Date :2021/4/26 16:01

*/

@Data

@AllArgsConstructor

@NoArgsConstructor

@ToString

@Component//注入到bean容器中

public class Dog {

@Value(“旺财”)

private String name;

@Value(“3”)

private Integer age;

}

3、在SpringBoot的测试类下注入狗狗输出一下;

在这里插入图片描述

package com.study;

import com.study.pojo.Dog;

import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest

class DemoApplicationTests {

@Autowired

private Dog dog;

@Test

void contextLoads() {

System.out.println(dog);

}

}

结果成功输出,@Value注入成功,

在这里插入图片描述

4、我们在编写一个复杂一点的实体类:Person 类

package com.study.pojo;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.ToString;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.stereotype.Component;

import java.util.Date;

import java.util.List;

import java.util.Map;

/**

  • @Description :

  • @Date :2021/4/26 16:04

*/

/*

@ConfigurationProperties的作用

将配置文件中配置的每一个属性的值,映射到组件中;

告苏springboot将本类中所有属性个配置文件中相关配置进行绑定

参数prefix=“person”,将配置文件中的person下面的所有属性一一对应

只有这个组件是容器里面的组件,才能使用容器提供的@ConfigurationProperties

*/

@Data

@AllArgsConstructor

@NoArgsConstructor

@ToString

@Component//注册bean

@ConfigurationProperties(prefix = “person”)

public class Person {

private String name;

private Integer age;

private Boolean happy;

private Date birth;

private Map<String,Object> maps;

private List lists;

private Dog dog;

}

5、我们来使用yaml配置的方式进行注入,大家写的时候注意区别和优势,我们编写一个yaml配置!

person:

name: hello

age: 3

happy: false

birth: 1021/4/26

maps: {k1: v2,k2: v2}

lists:

  • first

  • second

  • third

dog:

name: “旺财”

age: 5

6、IDEA 提示,springboot配置注解处理器没有找到,让我们看文档,我们可以查看文档,找到一个依赖!在这里插入图片描述

在这里插入图片描述

org.springframework.boot

spring-boot-configuration-processor

true

7、确认以上配置都OK之后,我们去测试类中测试一下:

@SpringBootTest

class DemoApplicationTests {

@Autowired

private Person person;

@Test

void contextLoads() {

System.out.println(person);

}

}

最后

学习视频:

大厂面试真题:

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

rue

7、确认以上配置都OK之后,我们去测试类中测试一下:

@SpringBootTest

class DemoApplicationTests {

@Autowired

private Person person;

@Test

void contextLoads() {

System.out.println(person);

}

}

最后

学习视频:

[外链图片转存中…(img-sEjJdxXv-1715413612038)]

大厂面试真题:

[外链图片转存中…(img-fRkXn36v-1715413612039)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值