@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")
解决方式二:
暴力解决方式。将红色标识强行取消。此种情况下,简单测试可以正常进行,但是不知后续会不会出现问题。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
springboot @ConfigurationProperties和@PropertySource的区别
springboot @ConfigurationProperties和@PropertySource区别 @ConfigurationProperties:寻找的是全局配置文件 @PropertySource:寻找的是指定的配置文件 理解里面有一个参数 value,可以指定很多个配置文件,所以是使用一个数组{} springboot推荐使用这种方式给容添加组件: 创建一个config包,然后在包下创建一个class 使用@bean给容器中添加组件 springboot 使用@Configura
-
详解@ConfigurationProperties实现原理与实战
在SpringBoot中,当需要获取到配置文件数据时,除了可以用Spring自带的@Value注解外,SpringBoot提供了一种更加方便的方式:@ConfigurationProperties.只要在bean上添加上这个注解,指定好配置文件的前缀,那么对应的配置文件数据就会自动填充到bean中.举个栗子,现在有如下配置: myconfig.name=test myconfig.age=22 myconfig.desc=这是我的测试描述 添加对应的配置类,并添加上注解@Configuratio
-
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>
-
@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现
相关说明: 在SpringBoot中,我们可以通过以下几种方式获取并绑定配置文件中的信息: @Value注解. 使用Environment. @ConfigurationProperties注解. 通过实现ApplicationListener接口,注册监听器,进行硬编码获取,可参考:https://www.jb51.net/article/187407.htm 硬编码加载文件获取. -- 注:一般情况下,第一种.第二种就够用了;但是如果想直接从配置文件中获取到数组.list.map.对象的话,
-
SpringBoot @ConfigurationProperties注解的简单使用
源码 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ConfigurationProperties { @AliasFor("prefix") String value() default ""; @AliasFor("value") String prefix()
-
SpringBoot @ConfigurationProperties使用详解
简介 本文将会详细讲解@ConfigurationProperties在Spring Boot中的使用. 添加依赖关系 首先我们需要添加Spring Boot依赖: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <relativePath/> <!-- lookup
-
@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
随机推荐
- flex chrome浏览器调试出现空白的解决方法
- IOS客户端接入微信支付
- Oracle数据库安全策略分析(一)第1/2页
- Bootstrap Table快速完美搭建后台管理系统
- 引用母版页后在page页面修改母版页控件的值的方法
- 使用Discuz关键词服务器实现PHP中文分词
- python 回调函数和回调方法的实现分析
- 光碟工具 Alcohol 120% v1.9.6.4719 下载(附序列号注册码)
- Android使用DrawerLayout实现侧滑菜单效果
- 一些常用的JS功能函数(2009-06-04更新)
- C#小数点格式化用法小结
- Win7下在IIS7中配置PHP的FastCGI支持_笔记
- nginx服务器access日志中大量400 bad request错误的解决方法
- php SQL防注入代码集合
- C++ Custom Control控件向父窗体发送对应的消息
- 详解C++ 编写String 的构造函数、拷贝构造函数、析构函数和赋值函数
- 十兆空间为您提供20M免费静态空间服务
- angularjs使用gulp-uglify压缩后执行报错的解决方法
- Spring Boot 异步框架的使用详解
- SpringBoot+RabbitMq具体使用的几种姿势