springboot @ConfigurationProperties和@PropertySource的区别
springboot @ConfigurationProperties和@PropertySource区别
@ConfigurationProperties
:寻找的是全局配置文件
@PropertySource
:寻找的是指定的配置文件
理解里面有一个参数 value,可以指定很多个配置文件,所以是使用一个数组{}
springboot推荐使用这种方式给容添加组件:
创建一个config包,然后在包下创建一个class
使用@bean给容器中添加组件
springboot 使用@ConfigurationProperties和@PropertySource的问题
在使用Springboot时我们经常把一些key-value的属性值配置在
.properties配置文件中,我们想通过@Value搭配Spring EL来读取配置文件中的值来给我们的变量赋值。
在spring1.5一下提供了一个类注解:
@ConfigurationProperties:
常用的两个属性是:
locations
:指定配置文件
prefix
:指定该配置文件中的某个属性群的前缀
但是使用spring1.5时,源码部分做了修改,去掉了locations属性,所以另一个注解就上场啦
@PropertySource:
value
:这里指定配置文件,替代原来@ConfigurationProperties的locations
encoding
:指定读取配置文件时的编码
这个encoding很重要,如果不指定使用默认的话很可能出现读取乱码的情况,我写demo就遇到了,百度了很多解决方案都是从ide工具本身入手,根本不能解决问题,最后还是我自己看注解的源码才发现有这个属性的。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Spring Boot2.0 @ConfigurationProperties使用详解
引言 Spring Boot的一个便捷功能是外部化配置,可以轻松访问属性文件中定义的属性.本文将详细介绍@ConfigurationProperties的使用. 配置项目POM 在pom.xml中定义Spring-Boot 为parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId>
-
解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题
@ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定键值对映射到一个java实体类上.那么它是怎么发挥作用的呢?下面我们将揭开@ConfigurationProperties的魔法. ConfigurationPropertiesBindingPostProcessor这个bean后置处理器,就是来处理bean属性的绑定的,这个bean后置处理器后文将称之为properties后置处理器.你需要知道以下几件事: ioc容器context的e
-
SpringBoot @ConfigurationProperties使用详解
简介 本文将会详细讲解@ConfigurationProperties在Spring Boot中的使用. 添加依赖关系 首先我们需要添加Spring Boot依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <relativePath/> <!-- lookup
-
在SpringBoot下读取自定义properties配置文件的方法
SpringBoot工程默认读取application.properties配置文件.如果需要自定义properties文件,如何读取呢? 一.在resource中新建.properties文件 在resource目录下新建一个config文件夹,然后新建一个.properties文件放在该文件夹下.如图remote.properties所示 二.编写配置文件 remote.uploadFilesUrl=/resource/files/ remote.uploadPicUrl=/resource
-
Spring Boot自定义配置属性源(PropertySource)
配置覆盖优于profile 在生产实践中,配置覆盖是解决不同环境不同配置的常用方法.比如用生产服务器上的配置文件覆盖包内的文件,或者使用中心化的配置服务来覆盖默认的业务配置. 相比于profile机制(比如maven的profile.spring boot的profile-specific properties),即不同环境使用不同的配置文件,覆盖的方式更有优势.程序员在开发时不需要关心生产环境数据库的地址.账号等信息,一次构建即可在不同环境中运行,而profile机制需要将生产环境的配置写到项
-
springboot @ConfigurationProperties和@PropertySource的区别
springboot @ConfigurationProperties和@PropertySource区别 @ConfigurationProperties:寻找的是全局配置文件 @PropertySource:寻找的是指定的配置文件 理解里面有一个参数 value,可以指定很多个配置文件,所以是使用一个数组{} springboot推荐使用这种方式给容添加组件: 创建一个config包,然后在包下创建一个class 使用@bean给容器中添加组件 springboot 使用@Configura
-
SpringBoot中注解@ConfigurationProperties与@Value的区别与使用详解
目录 注解@ConfigurationProperties 注解@Value 区别 松散语法绑定: SpEl语法表示: JSR303数据校验: 复杂类型封装: 配置文件注入值数据校验 注解@ConfigurationProperties 该注解的作用是将配置文件中配置的每一个属性的值,映射到这个组件中.@ConfigurationProperties :告诉springboot将本类中的所有属性和配置文件中相关的配置进行绑定 prefix = "person":配置文件中哪个下面的所有
-
深入浅析springboot中static和templates区别
静态页面的return默认是跳转到/static/目录下,当在pom.xml中引入了thymeleaf组件,动态跳转会覆盖默认的静态跳转,默认就会跳转到/templates/下,注意看两者return代码也有区别,动态没有html后缀. 1.1 在static下新建hello1.html 运行程序,浏览器输入http://localhost:8080/hello1.html so,可以在根目录下访问hello1.html,static目录类似于传统Java web中的webroot或webcon
-
Springboot @Validated和@Valid的区别及使用详解
概述: @Valid是使用Hibernate validation的时候使用 @Validated是只用Spring Validator校验机制使用 说明:java的JSR303声明了@Valid这类接口,而Hibernate-validator对其进行了实现 @Validation对@Valid进行了二次封装,在使用上并没有区别,但在分组.注解位置.嵌套验证等功能上有所不同,这里主要就这几种情况进行说明. 注解位置: @Validated:用在类型.方法和方法参数上.但不能用于成员属性(fie
-
SpringBoot @ConfigurationProperties注解的简单使用
源码 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ConfigurationProperties { @AliasFor("prefix") String value() default ""; @AliasFor("value") String prefix()
-
浅谈springboot @Repository与@Mapper的区别
目录 1.@Repository 2.@Mapper 3.区别 相同点: 不同点: 4.解决使用@mapper接口时,注入mapper爆红问题 今天在用springboot整合mybatis时,mapper接口上用的注解是以前学spring时用的@Repository注解,可一运行,就出现了错误. Error starting ApplicationContext. To display the conditions report re-run your application with 'de
-
springboot @Controller和@RestController的区别及应用详解
目录 @Controller和@RestController的区别及应用 @Controller和@RestController区别 @Controller的应用 @RestController的应用 @Controller和@RestController区别的小坑 1.如果注解Controller使用@RestController 2.如果需要返回到指定页面(jsp/html) @Controller和@RestController的区别及应用 @Controller和@RestControl
-
springboot如何通过@PropertySource加载自定义yml文件
目录 @PropertySource加载自定义yml文件 @PropertySource注解对于yml的支持 @PropertySource加载自定义yml文件 使用@PropertySource默认加载的是.xml或者 .properties文件,因为在注解源码默认使用的是DefaultPropertySourceFactory实现处理文件内容,spring使用ResourcePropertySource从Resource构建Properties传给Spring. 系统的应用,比如加载自定义的
-
spring-boot @Component和@Bean的区别详解
1.@Component 是用在类上的 @Component public class Student { private String name = "lkm"; public String getName() { return name; } public void setName(String name) { this.name = name; } } 2.@Bean 需要在配置类中使用,即类上需要加上@Configuration注解 @Configuration public
随机推荐
- 深入分析php之面向对象
- Jquery实现图片左右自动滚动示例
- vue2利用Bus.js如何实现非父子组件通信详解
- php通过array_merge()函数合并关联和非关联数组的方法
- Spring MVC 中 短信验证码功能的实现方法
- MVC5 + EF6 + Bootstrap3 (11) 实现排序、搜索、分页
- 详解linux下安装python3环境
- linux下讲解MySQL安装与登录方法
- 异步安全加载javascript文件的方法
- php calender(日历)二个版本代码示例(解决2038问题)
- 布同 统计英文单词的个数的python代码
- Vue 短信验证码组件开发详解
- 各个国家的粽子的历史 流派 做法第1/2页
- Google 地图控件集详解及实例代码
- SQL Server中发送HTML格式邮件的方法
- sql server 2000 数据库自动备份设置方法
- (C和指针) #if 0/#if 1...#end if
- Highcharts使用简例及异步动态读取数据
- Struts中使用validate()输入校验方法详解
- javascript验证内容为数字以及长度为10的简单实例