进阶项目 01 使用@value注解,@ConfigurationProperties ,@PropertySource和properties文件

这篇具有很好参考价值的文章主要介绍了进阶项目 01 使用@value注解,@ConfigurationProperties ,@PropertySource和properties文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这可能是分布式开发的前奏,什么是分布式开发,一般在学校里面写的springboot项目,只有application.properties或者是application.yml文件中的一个配置信息,例如:
application.yml文件中:

#server
server:
  port: 8080
  servlet:
    context-path: /
  tomcat:
    threads:
      max: 1000
#spring
spring:
  datasource:
    url: jdbc:mysql:///jtsys?serverTimezone=GMT
    username: root
    password: root
  thymeleaf:
    prefix: classpath:/templates/pages/
    suffix: .html
#mybatis
mybatis:
  configuration:
    default-statement-timeout: 30
    map-underscore-to-camel-case: true
  mapper-locations:
    - classpath:/mapper/*.xml
#LOG
logging:
  level:
    com.cy: DEBUG

这种一般是单体开发(一个服务器)

而分布式开发,是多个服务器在同一个项目中去使用,可能是一个子系统一个专门使用的服务器。

01.所以,首先去了解相关的注解。
@value,这个注解的功能是 在项目启动的时候,会自动的去获取yml中的配置信息,并且动态的实现数据的获取和封装。

新编辑一个项目的yml文件:

#server端口号
server:
port: 8090
servlet:
context-path: /
animal:
name: 老虎
age: 20

再写一个controller类文件:

@RestController
public class AnimalController {
@Value("${animal.name}")
private String name;
@Value("${animal.age}")
private int age;
@RequestMapping("/getAnimal")
public String getAnimal() {
return name+":"+age;
}
}

@Value(“${animal.name}”)其中,animal是yml文件的一级标题,而name是隶属于animal的二级标题,使用这些后,@value会自动的从yml获取相关数据,并且赋值给修饰的类的属性。

02@ConfigurationProperties注解批量为属性赋值
第一步:先要注入依赖:

<!--添加属性注入依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

第二步:编辑AnimalController
注意:使用批量赋值操作时,需要使用@ConfigurationProperties注解.并且需要指定数据的前缀类型.同
时必须添加属性的set/get方法,如果指定了前缀,并且如果属性名称相同,则可以利用set方法位属性赋值

@RestController
@ConfigurationProperties(prefix = "animal")
public class AnimalController {
//如果指定了前缀,并且如果属性名称相同,则可以利用set方法位属性赋值
private String name;
private int age;
@RequestMapping("/getAnimal")
public String getAnimal() {
return name+":"+age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}

03.当有多个properties文件时候,@value需要如何去赋值?
进阶项目 01 使用@value注解,@ConfigurationProperties ,@PropertySource和properties文件
编辑一个controller类personcontroller:

@RestController
@PropertySource("classpath:/properties/person.properties")
public class PersonController {
@Value("${person.id}")
private int id;
@Value("${person.name}")
private String name;
@RequestMapping("/getPerson")
public String getMsg() {
return id+":"+name;
}
}

@PropertySource(“classpath:/properties/person.properties”)用来准确的获取properties文件的位置,否则@value注解就会去yml文件中去寻找,因为项目一启动就会自动加载这个文件。文章来源地址https://www.toymoban.com/news/detail-424380.html

到了这里,关于进阶项目 01 使用@value注解,@ConfigurationProperties ,@PropertySource和properties文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot学习随笔- @SpringBootApplication详解、加载绝对路径配置文件、工厂创建对象(@ConfigurationProperties、@Value)

    学习视频:【编程不良人】2021年SpringBoot最新最全教程 这是一个 组合注解 ,就是由多个注解组成。下列注解红框内称为 元注解 (jdk提供) @Target :指定注解作用范围 @Retention :指定注解什么时候生效 重要注解 @SpringBootConfiguration:自动配置Spring、SpringMVC相关环境 @EnableAutoCo

    2024年02月05日
    浏览(57)
  • 如何在SpringBoot中使用@Value注解来设置默认值

    👽👽👽在Spring Boot中,使用@Value注解可以为属性设置默认值。 @Value注解可以用于注入以下类型的属性: 1、基本数据类型(如字符串、整数、浮点数等) 2、基本数据类型的数组 3、集合类型(如List、Set等) 4、自定义数据类型,包括自定义对象和自定义对象的集合 5、Spri

    2024年02月11日
    浏览(35)
  • SSM 整合使用 @PropertySource 问题

    如果你想将数据库连接的相关属性移入一个 classpath 下的 “.properties” 文件中,让后再在上述配置类中结合 @PropertySource 和 @Value 来加载 .properties 配置文件,引入相关属性值,那么,你会发现一个问题,你的 @Value 读取到的属性值都是 null ! 造成这个现象的原因在在于,我们

    2024年03月17日
    浏览(36)
  • 【JavaEE进阶】 Spring使用注解存储对象

    在博主前面所写的《【JavaEE进阶】 Spring 的创建和使⽤》中我们已经可以实现基本的 Spring 读取和存储对象的操作了,但在操作的过程中我们发现读取和存储对象并没有想象中的那么“简单”,所以接下来我们要学习更加简单的操作 Bean 对象的⽅法。 在 Spring 中想要更简单的存

    2024年02月05日
    浏览(43)
  • Spring中的@Value注解详解

    概述 本文配置文件为yml文件 在使用spring框架的项目中,@Value是经常使用的注解之一。其功能是将与配置文件中的键对应的值分配给其带注解的属性。在日常使用中,我们常用的功能相对简单。本文使您系统地了解@Value的用法。 @Value 注解可以用来将外部的值动态注入到 Bean

    2024年02月06日
    浏览(51)
  • Spring中@Value注解取值为null问题排查

    一、背景 近期应用中因业务迭代需要接入 user 客户端,接入后总是启动失败,报注册 user bean 依赖的配置属性为 null(如 appName,group 等都为空),示例代码如下: 二、@Value 取值为 null 原因分析 2.1. @Value 取值为 null 常见原因分析 常见现象一:类没有交给 Spring 管理,比如类没

    2024年02月10日
    浏览(38)
  • SpringBoot复习:(18)@Value和@Autowired注解配置的属性是怎么注入到bean中的?

    @Value java doc文档指出,它是由 AutowiredAnnotationBeanPostProcessor 这个 BeanPostProcessor 处理的。 AutowiredAnnotationBeanPostProcessor的构造方法如下: 可见AutowiredAnnotationBeanPostProcessor用来处理@Autowired和@Value这两个注解。 具体的处理流程是通过在容器对bean进行实例化的时候应用上述BeanPostPr

    2024年02月13日
    浏览(39)
  • spring-mvc系列:详解@RequestMapping注解(value、method、params、header等)

    目录 一、@RequestMapping注解的功能 二、@RequestMapping注解的位置 三、@RequestMapping注解的value属性 四、@RequestMapping注解的method属性 五、@RequestMapping注解的params属性 六、@RequestMapping注解的header属性 七、SpringMVC支持ant分格的路径 八、SpringMVC支持路径中的占位符 从注解名称上我们可

    2024年02月14日
    浏览(49)
  • SpringBoot项目中使用Swagger2及注解解释(详细)

    SpringBoot项目中使用Swagger2及注解解释 一、导入Swagger坐标依赖 其中版本最常用2.9.2 二、在spring启动类添加注解@EnableSwagger2 @EnableSwagger2是springfox提供的一个注解,代表swagger2相关技术开启。会扫描当前类所在包,及子包中所有类型的swagger相关注解,做swagger文档的定制 三、启动

    2023年04月18日
    浏览(82)
  • 01-创建项目-工具使用备忘录

    创建项目 创建好目录文件夹 选择对应芯片型号 不用自动生成启动文件 创建编写代码文件: 命名第一个主逻辑调用文件名为main 然后可以再main.c中编写代码 勾选输出文件格式: 编译生成hex文件(此文件供单片机下载执行): 系统频率:参考开发板 晶振 频率 8051指令集:参考芯

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包