解决SpringBoot @value注解取不到值的问题
关于@value的springapplication容器的问题
1.在src/main/resources下创建stu.properties文件
## student.name=Tom student.age=22 student.birthday=1996/01/10 student.sex=true student.hobbies[0]=swimming student.hobbies[1]=basketball student.skills[0]=programming student.skills[1]=test student.address.province=henan student.address.city=zhengzhou
2.创建实体类
package com.fcy.entity;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@Component
@PropertySource({"classpath:stu.properties"})
public class Student {
@Value("${student.name}")
private String name;
@Value("${student.age}")
private int age;
@Value("${student.sex}")
private boolean sex;
@Value("${student.birthday}")
private Date birthday;
private String[] hobbies;
private List<String> skills;
private Map<String, Object> address;
//省略getter和setter方法
}
3.错误的方法
@RestController
public class StudentController {
@RequestMapping("/getStu")
public Student getStu() {
Student stu=new Student();
System.out.println(stu);
return stu;
}
}
4. 效果如图

5.正确的方法为

总结:
从上面方法得知,第一种方法没有获取到值是因为没有在springapplication容器里获取student的bean,因为在实体类加上了@comment注解,这个注解就是把student变成一个bean,才能读取到,不能new 一个对象调用
SpringBoot @Value注解设置默认值
默认值的设置:

符合SpEL表达式
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Springboot中@Value的使用详解
Springboot通过@Value注解将配置文件中的属性注入到容器内组件中(可用在@Controller.@Service.@Configuration.@Component等Spring托管的类中) 1.普通字符串注入 例:yml中存在key: name: zs @Value注入 @Value("${name}") public String name; 当yml中的name没有对应值时,即yml中为: name: 此时字符串name的值为"" 可设置注入属性的
-
Springboot在有参构造方法类中使用@Value注解取值
我们在Springboot中经常使用@Value注解来获取配置文件中的值,像下面这样 @Component class A { @Value("${user.value}") private String configValue; public void test() { System.out.println(configValue); } } 但有时我们需要这个类拥有一个有参的构造方法,比如 @Component class A { @Value("${user.value
-
Springboot @Value获取值为空问题解决方案
这篇文章主要介绍了Springboot @Value获取值为空问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在spring中,常常使用 @Value("${property}") 从application.properties中取值,需要注意两点 使用 @Value 的类不能使用 new 关键字进行实例化对象,必须采用 依赖注入的方式进行实例化 不能使用显式的构造方法 否则,将取不到值.解决方法如下: 删除显式的构造方法
-
springboot中@Value的工作原理说明
我们知道springboot中的Bean组件的成员变量(属性)如果加上了@Value注解,可以从有效的配置属性资源中找到配置项进行绑定,那么这一切是怎么发生的呢? 下文将简要分析一下@Value的工作原理. springboot版本: springboot-2.0.6.RELEASE 概述 springboot启动过程中,有两个比较重要的过程,如下: 1 扫描,解析容器中的bean注册到beanFactory上去,就像是信息登记一样. 2 实例化.初始化这些扫描到的bean. @Value的解析
-
SpringBoot 使用 @Value 注解读取配置文件给静态变量赋值
1.application.properties 配置文件 mail.username=xue@163.com mail.password=xue mail.host=smtp.163.com mail.smtp.auth=true 2.给普通变量赋值,直接在变量上添加 @Value 注解 import org.springframework.beans.factory.annotation.Value; public class MailConfig { @Value("${mail.user
-
SpringBoot使用@Value实现给静态变量注入值
SpringBoot中使用@Value()只能给普通变量注入值,不能直接给静态变量赋值 例如 application-dev.properties 配置文件有如下配置: 给普通变量赋值时,直接在变量声明之上添加@Value()注解即可,如下所示: 当要给静态变量注入值的时候,若是在静态变量声明之上直接添加@Value()注解是无效的,例如: 虽然没有编译和运行上的报错,经调试可知这种注解方式mailUsername.mailPassword.mailHost的值都是null,也就是说直接给静态变
-
Springboot @Value使用代码实例
这篇文章主要介绍了Springboot @Value使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 entity.Book package com.draymonder.amor.entity; import java.util.List; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.contex
-
解决SpringBoot @value注解取不到值的问题
关于@value的springapplication容器的问题 1.在src/main/resources下创建stu.properties文件 ## student.name=Tom student.age=22 student.birthday=1996/01/10 student.sex=true student.hobbies[0]=swimming student.hobbies[1]=basketball student.skills[0]=programming student.s
-
关于@Value注解取不到值的几种情况
目录 @Value注解取不到值的几种情况 几种获取不到值的特殊情况如下 @Value取不到值的原因 可能原因有 正确方式 @Value注解取不到值的几种情况 在spring的框架中,我们经常使用@Value注解来获取定义在application.properties的属性值,正常情况下是可以轻松的获取到值的,但是有几种特殊情况下是获取不到值的,在这记录下,以防止以后犯错误.正常获取的用法如下: 在application.properties中定义一个属性值: 正常情况下在代码里面这样获取: @V
-
解决SpringBoot中使用@Async注解失效的问题
错误示例,同一个类中使用异步方法: package com.xqnode.learning.controller; import com.fasterxml.jackson.core.JsonProcessingException; import org.springframework.scheduling.annotation.Async; import org.springframework.web.bind.annotation.GetMapping; import org.springf
-
解决springboot利用ConfigurationProperties注解配置数据源无法读取配置信息问题
@ConfigurationProperties是springboot新加入的注解,主要用于配置文件中的指定键值对映射到一个java实体类上.那么它是怎么发挥作用的呢?下面我们将揭开@ConfigurationProperties的魔法. ConfigurationPropertiesBindingPostProcessor这个bean后置处理器,就是来处理bean属性的绑定的,这个bean后置处理器后文将称之为properties后置处理器.你需要知道以下几件事: ioc容器context的e
-
.NET中TextBox控件设置ReadOnly=true后台取不到值三种解决方法
当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为"空" 原理没想通,说不清楚微软是出于什么考虑的,不过有时是要我们能通过前台脚本来填充值,并不希望用户修改其控件内容,这时就比较尴尬了. 刚开始是换成Html 里的 <input type="text" readonly="readonly" > ,不过后来发现这个工作量是很大的, 所以网上搜了下,没找出Text
-
java中Servlet Cookie取不到值原因解决办法
java中Servlet Cookie取不到值原因解决办法 现象: 在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()却不行 Cookie mycookies[] = request.getCookies(); 中永远获取不到uid的值:(80端口号除外) 原因: 查了浏览器的具体cookie值,发现 http://localhost:8080/ 访问的时候,cookie值
-
解决python中遇到字典里key值为None的情况,取不出来的问题
在python 命令行界面里,是可以去取key为None的value值. 在脚本里面就取不出了,可以用如下的方式解决. hosts = {"a":"111", "None":b, "c":"333"} hname = "" for (k,v) in hosts.items(): if k == None: print " value=%s " % (v) else:
-
解决ng-repeat产生的ng-model中取不到值的问题
最近遇到在ng-repeat产生的textarea中绑定ng-model后,在js中取不到ng-model值的问题. html的代码结构如下 <div class="ques-item hide1 show9a" id="q10"> <div class="ques-item-question"> 10.{{questions[9].questionContent}} </div> <div class=
-
angularJs select绑定的model取不到值的解决方法
前端直接绑定值,不传参数,controller中会一直取到初始化的值,无法实时获取前端select改变的值. 解决方法一:前端调用方法的时候,一边传参数(亲测可用) <select ng-model="speed" name="speed" ng-change="vm.h5Video().Playspeed(speed)> <option value="1" selected="selected"&
-
vue data有值,但是页面{{}} 取不到值的解决
我的问题出在js引入的顺序不对,导致不能正常显示vue中的值 正确的顺序应该是: 先引入vue的js--------html代码-----最后引入自己写的js 补充知识:vue中子组件的created.mounted生命周期钩子中获取不到props中的值问题 父子组件通信 这个很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 . 例如:在父组件中 <template> <div> <div :Data="Data"></d
随机推荐
- 详解CentOS7安装配置vsftp搭建FTP
- spring之Bean的生命周期详解
- asp.net用Zxing库实现条形码输出的具体实现
- asp.net 执行事务代码
- php curl模拟post请求和提交多维数组的示例代码
- C#实现线程安全的简易日志记录方法
- canvas绘制多边形
- 原生js实现addClass,removeClass,hasClass方法
- asp之基于adodb.stream的文件操作类
- 搭建Eclipse+MyEclipse开发环境
- canvas滤镜效果实现代码
- jQuery实现简易的输入框字数计数功能示例
- jQuery 技巧大全(新手入门篇)
- jquery mobile 实现自定义confirm确认框效果的简单实例
- 卡巴斯基6.0设置技巧全接触之图文教程
- Java实现的日期处理类完整实例
- Java 中的注解详解及示例代码
- Asp.net MVC中获取控制器的名称的方法
- 详解webpack2+node+react+babel实现热加载(hmr)
- JavaScript通过元素的ID和name设置样式
