1. 第一步检测语法是否正确

@Value("${test}")
private String test;

2.第二步检测配置文件中是否有进行配置

url=test
username=username
password=password

3.第三步检测是否增加了@Component注解

在spring中,使用了spring的注解,那么就需要使用spring来进行管理对象,而不能自己进行new,否则就会导致失败。

@Component   //将类交给spring进行对象管理
public class DBUtils { @Value("${url}")
private String url;
@Value("${username}")
private String username;
@Value("${password}")
private String password; }

4.第四步检测代码中的书写方式

不要再无参构造器中,进行new对象的操作。否则就会造成@Value注解失败。(本人就是踩到这步坑)。

初始化上下文可以使用@PostConstruct注解来进行初始化,他会在spring加载完信息后,进行调用并且只调用一次。

5.@Value无法注入static属性

使用@Value直接放在static的属性上是无法注入内容的!!!此方式会一直是null.

原因
发现@value不能直接注入值给静态属性,spring 不允许/不支持把值注入到静态变量中;spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量,并且使用@Value的类必须交个spring进行管理.就如同@Autowired有时无法注入一样.
详细说明:https://blog.csdn.net/sqlgao22/article/details/100100314

改进

使用setter方法进行属性的赋值,并且setter方法不能有static

idea自动生成的方法会有static,需要手动删除.

@Component   //将类交给spring进行对象管理
public class DBUtils { private static String url;
private static String username;
private static String password; @Value("${url}") //删除掉static
public void setUrl(String url) {
DBUtils.url = url;
}
@Value("${username}")
public void setUsername(String username) {
DBUtils.username = username;
}
@Value("${password}")
public void setPassword(String password) {
DBUtils.password = password;
}
//查看是否注入
public static void get() {
System.out.println("=====url====="+url);
System.out.println("=====username====="+username);
System.out.println("=====password====="+password);
}
}

测试

    @RequestMapping("/get")
@ResponseBody
public String get() {
DBUtils.get();
return "get";
}

测试后输出:

成功注入属性.

文章转载至:https://blog.csdn.net/sqlgao22/article/details/100096348

SpringBoot:SpringBoot中@Value注入失败的更多相关文章

  1. SpringBoot JPA 中无法注入 JpaRepository 接口的问题及解决方案

    错误: 在Springboot  框架中使用JPA的过程中,怎么来实现数据库操作底层的交互呢?Spring JPA其实已经提供了一套很全面的解决方案,实现对数据库的增.删.查.改只需要继承JPA实现类 ...

  2. ssm中mapper注入失败的传奇经历

    最近因为要测试一个功能,需要用最短的时间来启动服务,开启测试程序,但平常所用的框架中已经集成了各种三方的东西,想着那就再重新搭建一个最简单的ssm框架吧. 搭建可参考:简单ssm最新搭建 搭建过程并不 ...

  3. 【Intellij idea】spring中@Autowired注入失败

    @Autowired注入失败失败的解决办法? 现有的解决的方案是: 打开file-settings或者ctrl+alt+s -> Editor 然后在Inspections 点击搜索栏 输入Sp ...

  4. 解决 Springboot中Interceptor拦截器中依赖注入失败

    问题: 在Springboot拦截器Interceptor中使用@Resource依赖注入时,发现运行的时候被注解的对象居然是null,没被注入进去 原配置为: @Configurationpubli ...

  5. 记一个SpringBoot中属性注入失败的问题Consider defining a bean of type ''' in your configuration

    今天遇到的一个问题: 代码检查了好几次,都没有错误,但是启动时就会报错Consider defining a bean of type ''' in your configuration. 启动类在c ...

  6. SpringBoot中service注入失败(A component required a bean of type 'XXService' that could not found)

    先写了JUnit,发现启动不了,注释掉有问题的service也不可以.可能是因为spring开始时会加载所有service吧. 按照网友们的说法,一般需要检查: 1.入口类有没有写MapperScan ...

  7. 关于springboot项目中自动注入,但是用的时候值为空的BUG

    最近想做一些web项目来填充下业余时间,首先想到了使用springboot框架,毕竟方便 快捷 首先:去这里 http://start.spring.io/ 直接构建了一个springboot初始化的 ...

  8. springboot拦截中自动注入的组件为null问题解决方法

    一.写SpringUtil类来获取Springh管理的类实例,判断是否注入成功,如果没有注入成功重新获取注入 package com.util; import org.springframework. ...

  9. Springboot 拦截器 依赖注入失败

    解决方案2种. ====1 https://blog.csdn.net/shunhua19881987/article/details/78084679 ====2 https://www.cnblo ...

随机推荐

  1. 自用Chrome插件推荐【附教程及下载】

    自用Chrome插件推荐[附教程及下载] 豆子   1,675 人赞同了该文章 2019.11.03更新 原文同步发布在我的个人博客 Chrome插件自用​blog.douzi.work 都是我自己一 ...

  2. 解决SecureCRTPortable和SecureFXPortable的中文乱码问题

    我们使用客户端连接Linux服务器时会出现中文乱码的问题,解决方法如下: 一.修改SecureCRTPortable的相关配置 步骤一:[选项]->[全局选项] 步骤二:[常规]->[默认 ...

  3. [leetcode] 30. 与所有单词相关联的字串(cn第653位做出此题的人~)

    30. 与所有单词相关联的字串 这个题做了大概两个小时左右把...严重怀疑leetcode的judge机器有问题.同样的代码交出来不同的运行时长,能不能A题还得看运气? 大致思路是,给words生成一 ...

  4. Step By Step(Lua模块与包)

    Step By Step(Lua模块与包) 从Lua 5.1开始,我们可以使用require和module函数来获取和创建Lua中的模块.从使用者的角度来看,一个模块就是一个程序库,可以通过requi ...

  5. (重磅)Internal: Failed to call ThenRnnForward with model config问题的解决(Keras 2.4.3和Tensorflow2.0系列)

    与此问题斗争了整整十天.win10,keras2.4.3,CUDA 10.1,CUDNN 7.6, tensorflow 2.3.0,驱动程序nvida 452 该问题出现在BiLSTM(GPU加速) ...

  6. 通过Mellanox ConnectX NIC使用XDP加速

    通过Mellanox ConnectX NIC使用XDP加速 Accelerating with XDP over Mellanox ConnectX NICs XDP(eXpress Data Pa ...

  7. 单点突破:MySQL之基础

    前言 开发环境:MySQL5.7.31 本文并不是mysql语法语句的教程或者笔记,如果初学MySQL,想要看sql的教程或者学习各种语法语句规范,可以看看一千行MySQL学习笔记或者MySQL教程| ...

  8. 用Java如何设计一个阻塞队列,然后说说ArrayBlockingQueue和LinkedBlockingQueue

    前言 用Java如何设计一个阻塞队列,这个问题是在面滴滴的时候被问到的.当时确实没回答好,只是说了用个List,然后消费者再用个死循环一直去监控list的是否有值,有值的话就处理List里面的内容.回 ...

  9. MySQL零散知识点(01)

    内容概要 --- 表字段操作补充(掌握) --- python操作MySQL(掌握) --- 视图(了解) --- 触发器(了解) --- 存储过程(了解) --- 事务(掌握) --- 内置函数(了 ...

  10. 大家看看大佬对Maven仓库的讲解,有何高明之处?

    Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方). 分类 maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分 ...