SpringBoot配置类注解

简介: 在使用springBoot进行开发时,经常会碰到把配置文件的属性值注入到某个JAVA类的属性中,可以使用@value注解注入配置文件的单个属性,也可以使用@ConfigurationProperties注入对象的多个属性。

一、前言

在使用springBoot进行开发时,经常会碰到把配置文件的属性值注入到某个JAVA类的属性中,可以使用@value注解注入配置文件的单个属性,也可以使用@ConfigurationProperties注入对象的多个属性。

二、@value用法

@Value("#{}")

@Value(“#{}”) 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量

@Value("#{100}")  
privateintnumber; //获取常量数字100 @Value("#{'helloworld'}") //获取字符串常量  privateStringstr;  
@Value("#{dataSource.url}") //获取bean(dataSource)的属性  privateStringjdbcUrl;


@Value("${}")

用 @Value(“${xxxx}”)注解从配置文件获取对应的值


@Value("${user.name}")  
privateStringname;


三、@ConfigurationProperties

Spring源码中大量使用了ConfigurationProperties注解,比如server.port就是由该注解获取到的,通过与其他注解配合使用,能够实现Bean的按需配置。

该注解有一个prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上

使用@Component加载到容器中

我们读取配置文件的信息,并自动封装成实体类,这样我们就可以少写很多配置,这时候,就可以使用@ConfigurationProperties,并与@Component进行组合配置,把配置文件的配置信息自动封装成实体类。

user.username=admin
user.password=kyjufskifas2jsfs
user.addr=北京市海淀区


@Component@ConfigurationProperties(prefix="user")
@DatapublicclassUser {
privateStringusername;
privateStringaddr;
privateStringpassword ;
}


使用@Bean加载到容器中

可以从注解说明中看到,当将该注解作用于方法上时,如果想要有效的绑定配置,那么该方法需要有@Bean注解且所属Class需要有@Configuration注解。

@Bean@ConfigurationProperties(prefix="conn")
publicUsergetUser(){
returnnewUser();
    }


四、@EnableConfigurationProperties用法

@EnableConfigurationProperties注解的作用是:使 @ConfigurationProperties 注解的类生效。

如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。@EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入。

@ConfigurationProperties(prefix="conn")
@DatapublicclassUser {
privateStringusername;
privateStringaddr;
privateStringpassword ;
}
@EnableConfigurationProperties(User.class)
publicclassUserfiguration {
}


五、总结

  1. @ConfigurationProperties 和 @value 有着相同的功能,但是 @ConfigurationProperties的写法更为方便,可以一次绑定多个属性。
  2. @ConfigurationProperties 的 POJO类的命名比较严格,因为它必须和prefix的后缀名要一致, 不然值会绑定不上, 特殊的后缀名是“driver-class-name”这种带横杠的情况,在POJO里面的命名规则是 下划线转驼峰 就可以绑定成功,所以就是 “driverClassName”
相关文章
|
27天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
48 0
|
2月前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
105 3
|
24天前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
46 0
|
2月前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
41 0
|
29天前
|
缓存 IDE Java
SpringBoot入门(7)- 配置热部署devtools工具
SpringBoot入门(7)- 配置热部署devtools工具
39 2
 SpringBoot入门(7)- 配置热部署devtools工具
|
1月前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
58 4
SpringBoot必须掌握的常用注解!
|
13天前
|
前端开发 Java Spring
探索Spring MVC:@Controller注解的全面解析
在Spring MVC框架中,`@Controller`注解是构建Web应用程序的基石之一。它不仅简化了控制器的定义,还提供了一种优雅的方式来处理HTTP请求。本文将全面解析`@Controller`注解,包括其定义、用法、以及在Spring MVC中的作用。
30 2
|
19天前
|
存储 前端开发 JavaScript
springboot中路径默认配置与重定向/转发所存在的域对象
Spring Boot 提供了简便的路径默认配置和强大的重定向/转发机制,通过合理使用这些功能,可以实现灵活的请求处理和数据传递。理解并掌握不同域对象的生命周期和使用场景,是构建高效、健壮 Web 应用的关键。通过上述详细介绍和示例,相信读者能够更好地应用这些知识,优化自己的 Spring Boot 应用。
24 3
|
27天前
|
Java 数据库连接
SpringBoot配置多数据源实战
第四届光学与机器视觉国际学术会议(ICOMV 2025) 2025 4th International Conference on Optics and Machine Vision
52 8
|
25天前
|
Java 数据库连接 数据库
springboot启动配置文件-bootstrap.yml常用基本配置
以上是一些常用的基本配置项,在实际应用中可能会根据需求有所变化。通过合理配置 `bootstrap.yml`文件,可以确保应用程序在启动阶段加载正确的配置,并顺利启动运行。
55 2