属性注入掌握:Spring Boot配置属性的高级技巧与最佳实践

简介: 属性注入掌握:Spring Boot配置属性的高级技巧与最佳实践


属性注入

当使用 Spring Boot 开发应用程序时,可以使用属性文件来配置应用程序的行为。Spring Boot 支持将属性值从属性文件注入到应用程序中的不同组件中。这使得我们可以在不修改代码的情况下更改应用程序的行为。

Spring Boot 支持多种类型的属性文件,包括 .properties.yml 文件。以下是使用这些文件进行属性注入的示例:

  1. 创建属性文件:首先,创建一个名为 application.properties(或 application.yml)的文件,放在 src/main/resources 目录下。该文件包含要配置的属性键值对。
  2. 定义属性:在属性文件中,可以定义应用程序需要的各种属性。例如,可以定义数据库连接的URL、用户名、密码等。
author:
  name: 薛伟
  age: 25
  isMan: true
  # 日期格式必须为 yyyy/MM/dd HH:mm:ss
  birthday: 1999/07/29 12:00:00
  # 数组或集合使用 , 分割
  friends: 张三,李四,王五,赵六
  # 此处为 JSON 字符串,双引号包裹
  school: "{'name':'宜春学院', 'location':'江西-宜春', 'major':'计算机科学与技术'}"

注入属性值:在 Spring Boot 应用程序的代码中,可以通过使用 @Value 注解将属性值注入到变量中。

@SpringBootTest
public class InjectionTest {
    /**
     * 注入基本数据类型
     */
    @Value("${author.name}")
    private String name;
    
    @Value("${author.age}")
    private Integer age;
    
    @Value("${author.isMan}")
    private Boolean isMan;
    /**
     * 注入日期
     */
    @Value("${author.birthday}")
    private Date birthday;
    /**
     * 注入数组或集合
     */
    @Value("${author.friends}")
    private List<String> friends;
    /**
     * 注入 JSON 转为 Map
     */
    @Value("#{${author.school}}")
    private Map<String,Object> school;
    
}

对象注入

使用 @ConfigurationProperties(prefix = "前缀"),比如上文在 application.yml 中配置的信息,那么 author 就是前缀。注意使用对象注册的时候就不可以在注入 JSON 了。

@Data
@Component
@ConfigurationProperties(prefix = "author")
public class Author {
    private String name;
    private Integer age;
    private Date birthday;
    private Boolean isMan;
    private List<String> friends;
}

自定义配置文件并使用对象注入

在 Spring Boot 应用程序中,可以使用自定义配置文件来覆盖默认的 application.properties 或 application.yml 文件。这意味着您可以在不修改默认配置文件的情况下,为您的应用程序提供自己的自定义配置。

resources 目录下创建 custom.properties 配置文件,并填写以下配置:

project.name=测试DEMO
project.jdk=1.8

加载自定义配置文件:在 Spring Boot 应用程序中,可以通过使用 PropertySource 注解加载自定义配置文件。

@Data
@Component
@PropertySource("classpath:/custom.properties")
public class MyProject {
    
    @Value("${project.name}")
    private String name;
    @Value("${project.jdk}")
    private String jdk;
}

然后配合 @ConfigurationProperties(prefix = "前缀") 即可完成对象注入。

@Data
@Component
@ConfigurationProperties(prefix = "project")
@PropertySource("classpath:/custom.properties")
public class Project {
    private String name;
    private String jdk;
}



相关文章
|
27天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
5天前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
20 0
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
30天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
36 0
|
23天前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
15天前
|
Java Spring
[Spring]aop的配置与使用
本文介绍了AOP(面向切面编程)的基本概念和核心思想。AOP是Spring框架的核心功能之一,通过动态代理在不修改原代码的情况下注入新功能。文章详细解释了连接点、切入点、通知、切面等关键概念,并列举了前置通知、后置通知、最终通知、异常通知和环绕通知五种通知类型。
27 1
|
28天前
|
druid Java Maven
|
1月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
123 1
|
25天前
|
消息中间件 监控 Java
Spring Boot 3.3 后台任务处理:最佳实践与高效策略
【10月更文挑战第10天】 在现代应用程序中,后台任务处理对于提高应用程序的响应性和吞吐量至关重要。Spring Boot 3.3提供了多种机制来实现高效的后台任务处理,包括异步方法、任务调度和使用消息队列等。本文将探讨这些机制的最佳实践和高效策略。
69 0
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
145 1