springboot学习笔记(五)--springboot的配置文件,2024Java春招面试真题详解

本文介绍了如何在SpringBoot应用中使用@Autowired和@ConfigurationProperties注解进行依赖注入,以及如何通过YAML配置文件和PropertySource加载和绑定属性。还讨论了实体类Person的配置和使用场景,以及IDEA中处理SpringBoot配置注解处理器的问题。
摘要由CSDN通过智能技术生成

在这里插入图片描述

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);

}

}

在这里插入图片描述

2.3、加载指定的配置文件


@PropertySource :加载指定的配置文件;

@configurationProperties:默认从全局配置文件中获取值;

1、我们去在resources目录下新建一个person.properties文件

name=张三

2、然后在我们的代码中指定加载person.properties文件

@PropertySource(value = “classpath:person.properties”)

@Component //注册bean

public class Person {

@Value(“${name}”)

private String name;

}

3、再次输出测试一下:指定配置文件绑定成功!

在这里插入图片描述

2.4、配置文件站位符


配置文件还可以编写占位符生成随机数

person:

name: qinjiang${random.uuid} # 随机uuid

age: ${random.int} # 随机int

happy: false

birth: 2000/01/01

maps: {k1: v1,k2: v2}

lists:

  • code

  • girl

  • music

dog:

name: ${person.hello:other}_旺财

age: 1

2.5、回顾properties配置


我们上面采用的yaml方法都是最简单的方式,开发中最常用的;也是springboot所推荐的!配置文件除了yml还有我们之前常用的properties 。

【注意】properties配置文件在写中文的时候,会有乱码 , 我们需要去IDEA中设置编码格式为UTF-8;

settings–>FileEncodings 中配置;

在这里插入图片描述properties形式文件测试步骤:

1、新建一个实体类User

@Component //注册bean

public class User {

private String name;

private int age;

private String sex;

}

2、编辑配置文件 user.properties

user1.name=kuangshen

user1.age=18

user1.sex=男

3、我们在User类上使用@Value来进行注入!

@Component //注册bean

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

img
img

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V:vip1024b 备注Java获取(资料价值较高,非无偿)
img

结尾

查漏补缺:Java岗 千+道面试题Java基础+全家桶+容器+反射+异常等

这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
源码讲义、实战项目、讲解视频,并且后续会持续更新**
如果你觉得这些内容对你有帮助,可以添加V:vip1024b 备注Java获取(资料价值较高,非无偿)
[外链图片转存中…(img-xGOA7y5i-1711582242502)]

结尾

[外链图片转存中…(img-53UM5Zqy-1711582242503)]

这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。

由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值