解决使用@Value(${×××))从properties文件取值的坑
@Value(${×××))从properties文件取值
前提:
你的实体类已经加入到了IOC容器中(使用@Compenet等注解)
报错代码:
@Value("${driver}") private String driver; @Value("${url}") private String url; @Value("${username}") private String userName; @Value("${password}") private String password;
properties文件
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/abc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false username=root password=admin
此时你这样写 @Value 注解是无法获取 properties文件中的值的
必须要在properties文件属性前加上前缀(任意)即可
如:
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/abc?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false jdbc.username=root jdbc.password=admin
对应的类也要修改
@Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url; @Value("${jdbc.username}") private String userName; @Value("${jdbc.password}") private String password;
这样就可以正常获取了
补充:
1、静态变量无法注入
2、Springboot默认属性文件是application.properties
Spring @Value("${}")空值处理
场景:
Test类中有一个在application.properties配置的属性email
@Value("${email}") private String email;
如果email在配置中没有配置,应用启动时将报找不到该属性异常,导致启动失败。
解决方案1:
在Test类上同时加上@Component,@Lazy
解决方案2:
在springboot中提供了@ConditionalOnProperty注解
设置注入条件
@ConditionalOnProperty(name = "flag", havingValue = "true")
仅当配置文件application.properties中flag属性为true时才会实例化bean
相关推荐
-
Springboot @Value获取值为空问题解决方案
这篇文章主要介绍了Springboot @Value获取值为空问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在spring中,常常使用 @Value("${property}") 从application.properties中取值,需要注意两点 使用 @Value 的类不能使用 new 关键字进行实例化对象,必须采用 依赖注入的方式进行实例化 不能使用显式的构造方法 否则,将取不到值.解决方法如下: 删除显式的构造方法
-
spring无法读取properties文件数据问题详解
1. controller中无法读取config.properties文件 controller中注入的@Value配置是从servlet-context.xml配置文件中获取的:service中注入的@Value配置可以从applicationContext.xml中获取的.所以,如果要在controller中注入属性配置,需要在相应servlet文件中添加配置,同applicationContext.xml中一样. <bean class="org.springframework.be
-
.properties文件读取及占位符${...}替换源码解析
前言 我们在开发中常遇到一种场景,Bean里面有一些参数是比较固定的,这种时候通常会采用配置的方式,将这些参数配置在.properties文件中,然后在Bean实例化的时候通过Spring将这些.properties文件中配置的参数使用占位符"${}"替换的方式读入并设置到Bean的相应参数中. 这种做法最典型的就是JDBC的配置,本文就来研究一下.properties文件读取及占位符"${}"替换的源码,首先从代码入手,定义一个DataSource,模拟一下JDB
-
详解五种方式让你在java中读取properties文件内容不再是难题
一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id
-
SpringBoot四种读取properties文件的方式(小结)
前言 在项目开发中经常会用到配置文件,配置文件的存在解决了很大一份重复的工作.今天就分享四种在Springboot中获取配置文件的方式. 注:前三种测试配置文件为springboot默认的application.properties文件 #######################方式一######################### com.zyd.type3=Springboot - @ConfigurationProperties com.zyd.title3=使用@Configura
-
解决使用@Value(${×××))从properties文件取值的坑
@Value(${×××))从properties文件取值 前提: 你的实体类已经加入到了IOC容器中(使用@Compenet等注解) 报错代码: @Value("${driver}") private String driver; @Value("${url}") private String url; @Value("${username}") private String userName; @Value("${password}
-
解决VUEX的mapState/...mapState等取值问题
有木有发现你页面的this.$store,一般都正常,但是总有那么几次,成为你页面报错的罪魁祸首!,那其实除了和vue的生命周期有关以外,还跟store取值的方式有关,下面就说一下新大陆之--mapState mapMutations mapGetters的使用 简单说一下我对mapState的理解,字面意思就是把store中state 的值遍历出来,任你取用,就不用写this.$store.getters.getState.openId等这么长的取值了,同理,mapMutations mapG
-
Springboot 如何指定获取自己写的配置properties文件的值
获取yml的可以参考这篇: Springboot 指定获取出 yml文件里面的配置值 www.jb51.net/article/217901.htm 直接进入正题: 先创建一个 配置文件test_config.properties: test.number=123456789 接下来获取test.number对应的值 这里我们采取最直接的方式(也可以通过注解获取),特意准备了个工具类 PropertiesUtil.java : package com.test.webflux.util; imp
-
shell脚本如何读取properties文件中的值
如下面代码所示的properties文件是各种编程语言中常用的属性文件,通过key读取value是极其常见的需求. # 端口 server.port=8520 # 上传文件总的最大值 spring.servlet.multipart.max-request-size=10MB # 单个文件的最大值 spring.servlet.multipart.max-file-size=10MB Linux中的shell通常是需要程序员自己写一个方法实现对properties文件的读取.以下是我写的一个方法
-
java如何实时动态获取properties文件的内容
目录 java 实时动态获取properties文件的内容 动态读取的代码 Java 读取配置文件 Properties VS ResourceBundle 1. 常用API 2. Properties 解析属性文件 3. ResourceBundle 解析属性文件 4. 属性文件 5. 实战推荐 java 实时动态获取properties文件的内容 用"ClassLoader.getResourceAsStream"读取properties文件时会发现修改了.properties后,
-
基于Properties文件中的空格问题
目录 Properties文件中的空格问题 默认情况下 读properties文件时,值中有空格,可能会引起bug 但是在读取配置的时候,发现如下debug图 先看下我读取的配置文件具体是什么样的 然后再看看读出来到debug是什么样的 Properties文件中的空格问题 默认情况下 空格可以作为Properties文件中Key和Value的分隔符,当我们需要在Key中使用空格的时候,可以使用反斜杠(\)对空格进行转移. 注: 斜杠为(/),反斜杠为(\). 读properties文件时,值中
-
如何利用python实现列表嵌套字典取值
目录 一.实例 二.解决思路 三.代码示例 一.实例 将以下列表的backup_unit_id全部提取出来 示例: dbs = [{ "backup_unit_id": 163, "data_node_id": 2, "attribute": { "convertor_id": 4, "channel_num":
-
spring @value无法取值多个properties文件的解决
目录 @Value无法取值多个properties文件 spring 直接上最后自己的解决方案 spring无法读取properties文件的value值 原因 解决方法 @Value无法取值多个properties文件 spring 自己在用SSM框架的时候,加载两个配置文件(properties),一个是数据库的配置文件,一个是资源配置信息文件,出现了要么数据库的连接信息解析成 ${jdbc.url}要么就是资源文件的信息解析不出来: 就像下面这样: 网上的很多的方法都试过,但是都没得什么用
-
解决request.getParameter取值后的if判断为NULL的问题
目录 request.getParameter取值后if判断为NULL 开始时,用语句判断 查明原因 servlet中request.getParameter得到null的几个可能 可能性一 可能性二 可能性三 可能性四 request.getParameter取值后if判断为NULL 以下为我程序的一部分,Auto_space_time_ok.jsp文件从Auto_space_time.jsp获取的值代码,此处博主需要做一个判断,当danwei 等于“学校”字符串时,将 zhuangtai的值
-
springBoot项目中使用@Value取值出现的问题及解决
目录 使用@Value取值出现的问题 1.一般情况下定义一个字段 2.但是通常我们会把它用在工具类当中 3.工具类最好加上@Component或者其他注解 记springBoot使用@Value出现的乌龙 先看一下代码 然后在需要的地方如下使用 使用@Value取值出现的问题 在springBoot项目中我们一般会把一些路径或者资源写在配置文件中,方便管理. 但是取得时候有可能会出现一些问题. file.uploadFolder=E://upload/ 1.一般情况下定义一个字段 在上面使用@V
随机推荐
- 运用正则表达式匹配所有表名
- access不能打开注册表关键字错误处理方法(80004005错误)
- 批处理自动登录QQ小结及相关讨论
- bat、vbs、js 原生混编(一个bat可以执行vbs,js代码)
- hibernate和mybatis对比分析
- Java缩略图生成库之Thumbnailator应用说明
- JavaScript中的集合及效率
- JS 页面自动加载函数(兼容多浏览器)
- MySQL中对查询结果排序和限定结果的返回数量的用法教程
- css 二级菜单 实现代码集合 修正版
- 可怜的兔子
- mysql生成随机字符串函数分享
- jQuery前台数据获取实现代码
- jQuery模拟实现的select点击选择效果【附demo源码下载】
- Jquery取得iframe下内容的方法
- CentOS7下安装Nginx+MySQL教程
- 安装“window优化大师”会造成自检失败
- PHP面向对象程序设计之对象生成方法详解
- Android SQLite详解及示例代码
- SQL 在自增列插入指定数据的操作方法