@ConfigurationProperties遇到的坑及解决
想着偷懒,直接使用@ConfigurationProperties(prefix="xxx")读取配置文件,不使用@Value("${xxx}")去一个一个的注入。
遇到的坑:
创建完成类以后忘记生成set方法,导致启动项目无法读取配置文件;使用@Value("${xxx}")在没有生成set方法前提下,能注入配置参数。
注:
1.如果使用@ConfigurationProperties注入配置参数,切记生成get和set方法。
2.使用@Value("${xxx}"),可以不生成get和set方法。
@ConfigurationProperties报错的解决方式
使用spring initializr快速创建Springboot项目时,@ConfigurationProperties(prefix = “person”),注解会有红色报错的标识。
如下:
解决方式一:
在该类上再加一个@Component注解,便可解决问题。
/* 将配置文件中所配置的属性映射到Perso @ConfigurationProperties:将该类中所有的属性和配置文件中的相关配置进行绑定。 prefix = "person":指定将配置文件下peoson和属性进行一一映射。 该类必须在容器中,才可使用@ConfigurationProperties(prefix = "person")功能。 */ @Component @ConfigurationProperties(prefix = "person")
解决方式二:
暴力解决方式。将红色标识强行取消。此种情况下,简单测试可以正常进行,但是不知后续会不会出现问题。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现
相关说明: 在SpringBoot中,我们可以通过以下几种方式获取并绑定配置文件中的信息: @Value注解. 使用Environment. @ConfigurationProperties注解. 通过实现ApplicationListener接口,注册监听器,进行硬编码获取,可参考:https://www.jb51.net/article/187407.htm 硬编码加载文件获取. -- 注:一般情况下,第一种.第二种就够用了;但是如果想直接从配置文件中获取到数组.list.map.对象的话,
-
详解@ConfigurationProperties实现原理与实战
在SpringBoot中,当需要获取到配置文件数据时,除了可以用Spring自带的@Value注解外,SpringBoot提供了一种更加方便的方式:@ConfigurationProperties.只要在bean上添加上这个注解,指定好配置文件的前缀,那么对应的配置文件数据就会自动填充到bean中.举个栗子,现在有如下配置: myconfig.name=test myconfig.age=22 myconfig.desc=这是我的测试描述 添加对应的配置类,并添加上注解@Configuratio
-
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
-
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注解的简单使用
源码 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ConfigurationProperties { @AliasFor("prefix") String value() default ""; @AliasFor("value") String prefix()
-
@ConfigurationProperties遇到的坑及解决
想着偷懒,直接使用@ConfigurationProperties(prefix="xxx")读取配置文件,不使用@Value("${xxx}")去一个一个的注入. 遇到的坑: 创建完成类以后忘记生成set方法,导致启动项目无法读取配置文件:使用@Value("${xxx}")在没有生成set方法前提下,能注入配置参数. 注: 1.如果使用@ConfigurationProperties注入配置参数,切记生成get和set方法. 2.使用@Val
-
Android 弹出软键盘所遇到的坑及解决方法
demo下载 重要代码: //1.此layout作为最外层的layout: //2.设置需要调整的view: setAdjustView(View view); //3.如果需要控制输入框的显示与隐藏,可以实现OnInputViewVisibleListener接口: public class SoftInputAdjustLayout extends RelativeLayout { private static final String TAG = SoftInputAdjustLayout
-
MySQL5.7中的sql_mode默认值带来的坑及解决方法
在正常项目开发过程中,如果MySQL版本从5.6升级到5.7版本.作为DBA在考虑数据库版本升级带来的影响时,一般会有几个注意点: sql_mode optimizer_switch 本文主要内容是MySQL升级到5.7版本之后,由于默认的 sql_mode 值带来的坑以及对应的解决方案. 案例一:ONLY_FULL_GROUP_BY 问题描述 MySQL版本从5.6升级至5.7之后,部分SQL执行报错,报错信息如下: ERROR 1055 (42000): Expression #3 of X
-
浅谈vue引入css,less遇到的坑和解决方法
在使用vux开发手机页面时,引入vux的公共样式less一直报错,通过各种百度,Google都没有解决,走了很多弯路.最后才发现钻牛角尖了,可以换一种方法引入. 1.报错的使用:在App中 @ ./~/css-loader?{"minimize":false,"sourceMap":false}!./~/vux/src/styles/reset. less 3:10-115 @ ./~/css-loader?{"minimize":false,&
-
基于IOS端微信分享失效的踩坑及解决方法
最近的一个公众号是基于vue的spa应用,在接入微信分享和微信语音的时候出现了:在Android上一切正常,但是在ios端调用wx.config的时候总是失败,去翻了官方文档也并没有找到解决方案,最后在测试中发现是因为初始化的时候传入的URL的问题.具体过程如下: 微信config接口配置,官方文档如下: 所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支
-
ant-design-vue按需加载的坑的解决
问题 在vue-cli4.x中按需加载ant-design-vue,在编译时报错,错误如下 原因 ant-design-vue使用less预处理器.在less3.0版本以前,javascriptEnabled属性默认为true,3.0以后默认为false.地址 目前项目中less版本为3.0.4,所以在编译中会报错 解决办法 第一种办法,在vue.config.js中添加如下配置 css: { loaderOptions: { less: { javascriptEnabled: true }
-
pip安装tensorflow的坑的解决
在我看来学习不难,配置一些环境真的很痛苦,之前的caffe配置,一口老血.. 不过用Python遇到了pip安装,真的赞,可是在用pip装tensorflow,竟然抛错?????黑脸.. 一.一开始中途报错,可能是网问题,所以报times out(猜测) 后来发现可能是pip命令不对 我是cpu,应该选2,之前写的1. 二.后来直接pip install tensorflow,tensorflow装完,自动装numpy却报错了.因为我之前自己用了numpy,早就装了.而每个tensorflow都
-
ASP .NET Core API发布与部署以及遇到的坑和解决方法
最近在写.Net Core的API,由于之前没接触过Core,所以自己的想法很简单,感觉和.Net都是差不多的东西,发布部署还是按.Net的那一套来,可谓是困难重重,走了不少弯路. 也没什么漂亮的词语,也不是技术大牛,就是抱着学习技术的态度,随手写写这一套流程,以及遇到的问题跟解决方法. 一.安装服务器环境 IIS Path-->Control Panel\All Control Panel Items\Programs and Features 没细致研究,全装了~ 二.发布API 1.选择
-
Python绘制雷达图时遇到的坑的解决
ValueError: The number of FixedLocator locations (9), usually from a call to set_ticks, does not match the number of ticklabels (8). 运行书中例题时发现了这个错误, 原代码如上: import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font
-
使用@JsonFormat的一个坑及解决
目录 使用@JsonFormat的一个坑及解决 解决如下 JsonFormat的时间格式踩坑 使用@JsonFormat的一个坑及解决 spring boot项目 ,mysql数据库的datetime数据类型无法使用@JsonFormat解析 ,使@JsonFormat注解失效 . 原因不明 ,解决方案未明-待.. 有一个解决方案: @JsonFormat注解在字段解析的时候失效了 ,但是放在application.yml配置文件中可以生效.具体原因不明 ,猜测底层覆盖掉format方法 或者J
随机推荐
- Vue基于NUXT的SSR详解
- C++实现简单的职工管理系统实训代码
- java 流操作对文件的分割和合并的实例详解
- asp.net文件上传功能(单文件,多文件,自定义生成缩略图,水印)
- 简单实现js选项卡切换效果
- JavaScript分秒倒计时器实现方法
- PHP中可以自动分割查询字符的Parse_str函数使用示例
- vue.js如何更改默认端口号8080为指定端口的方法
- UCenter info: MySQL Query Error SQL:SELECT value FROM [Table]vars WHERE noteexists
- PHP取整函数:ceil,floor,round,intval的区别详细解析
- 一个报数游戏js版(约瑟夫环问题)
- (X)HTML Strict 下的嵌套规则
- Android简易电话拨号器实例详解
- 原生JS改变透明度实现轮播效果
- JavaScript中windows.open()、windows.close()方法详解
- python中import学习备忘笔记
- mysql修改开启允许远程连接的方法
- c# 实现获取汉字十六进制Unicode编码字符串的实例
- Java中的InputStreamReader和OutputStreamWriter源码分析_动力节点Java学院整理
- Android 中 TabHost与ViewPager结合实现首页导航效果