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下读取自定义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注解配置数据源无法读取配置信息问题
@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 @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
随机推荐
- 浅析如何利用angular结合translate为项目实现国际化
- VBS中Run和Exec的区别
- PowerShell中定义哈希散列(Hash)和调用例子
- es6+angular1.X+webpack 实现按路由功能打包项目的示例
- Java8中的 Lambda表达式教程
- iOS 屏幕解锁文字动画效果
- ExtJS 下拉多选框lovcombo
- python3实现ftp服务功能(服务端 For Linux)
- Android 软引用和弱引用详解及实例代码
- node.js中的fs.realpath方法使用说明
- 全国省市二级联动下拉菜单 js版
- 定时导出mysql本地数据替换远程数据库数据脚本分享
- 让ajax更加友好的实现方法(实时显示后台处理进度。)
- Ubuntu下定时提交代码到SVN服务器的Shell脚本分享
- jQuery实现的无限级下拉菜单功能示例
- Jquery AJAX 用于计算点击率(统计)
- jQuery老黄历完整实现方法
- 新鲜出炉的js tips提示效果
- Java双括弧初始化操作技巧
- Android自定义view系列之99.99%实现QQ侧滑删除效果实例代码详解