@Value注解没有起作用的梳理
今天在使用@Value注解的时候遇到其不起作用的现象,先把场景说明一下:现在有A类和B类,而A类对象是通过new操作生成的临时对象,而B类对象是在A类中使用的;调试步骤如下:
(1)将B类的属性字段都设置为static类型,并且在字段上面添加@Value注解,B类中的方法都是static类型,此时在A类中使用B类方法时通过静态调用即可;经过调试发现,B类中的所有的静态字段都是null,也就是说@Value注解返回的是null值,并没有从配置application.properties文件中获取到有效值。因此,这种应用方式不对。
(2)将B类的属性字段依旧都是static类型,并且都添加Get\Set方法,这些方法都是static类型,同时在Set方法上添加了@Value注解,此时没有在字段上面添加@Value注解;经过调试发现,这些属性字段值依旧都是null,没有达到预期效果。
(3)在B类定义上面添加@Component注解,将B类的字段和方法都设置为非static类型,在字段定义上面添加@Value注解,在A类中添加@Autowired注解来组装B类对象,当然在A类定义上面添加了@Component注解;经过调试发现,B类对象的字段值还是null,此方式依旧没有满足需求。
(4)假设之前A类是在C类中通过new操作生成的临时变量,那么现在修改这种生成对象的方式,在C类中采@Autowired注解来生成A类对象,而A类和B类都在定义上面添加了@Component注解,在A类中也是通过@Autowired注解来组装B类对象, 并且在B类中字段都是通过@Value注解设置的;最终,经过调试发现,B类对象中的字段都有值了,并且都是配置文件中配置好的值;故,该使用策略能够符合期望要求。
小结:通过上述步骤的测验,不能在采用new的方式生成对象的类中有效利用注解。
------20200107闪
@Value注解没有起作用的梳理的更多相关文章
- JAVA 注解的几大作用及使用方法详解
JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释 ...
- JAVA 注解的几大作用及使用方法详解【转】
java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解 ...
- 【Java】java注解@Transient的作用, 配合JPA中时间段的查询
java注解@Transient的作用 @Transient标注的属性,不会被ORM框架映射到数据库中. 用于数据库表字段和java实体属性不一致的时候,标注在属性上使用. 例如时间段的查询 查询 R ...
- eclipse集成lombok注解不起作用
安装步骤: 步骤一:lombok的下载地址为:https://projectlombok.org/download,jar包很小.这里也把依赖写出来: <dependency> <g ...
- Spring @Transactional注解不起作用解决办法及原理分析
Transactional失效场景介绍 第一种 Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用.例如以下代码. 定义一个错误的@Trans ...
- SpringBoot Shiro 权限注解不起作用
最近在学习springboot结合shiro做权限管理时碰到一个问题. 问题如下: 我在userRealm中的doGetAuthorizationInfo方法中给用户添加了权限,然后在Controll ...
- @JsonIgnoreProperties注解不起作用的问题解决
最近做的一个东西要调第三方服务接口,要参照接口文档开发,但是第三方服务的接口字段名全部都是大写,本来以为这种应该没有什么问题.但是实际开发中发现大写的字段名字去调后台接口的时候报: org.codeh ...
- JsonIgnore注解不起作用的解决办法
一开始在属性上注解了JsonIgnore以为就不会序列化了,结果还是有这个属性,看来是没有起作用啊 [JsonIgnore] public List<int> SubjectAndSubS ...
- AOP注解不起作用的debug结果
经过2天的调试,我发现AOP注解配置不起作用居然是表达式的错误导致的 在xml文件中配置的base-package有关,初步认为@PointCut只能使用base-package..*(..)这样的方 ...
随机推荐
- oracle面试基础
. 对于一个存在系统性能的系统,说出你的诊断处理思路 ). 做statspack收集系统相关信息 了解系统大致情况/确定是否存在参数设置不合适的地方/查看top event/查看top sql等 ). ...
- Part2-求AX=b的最优解
自己一边听课一边记得,参考网上广为流传的那本<MIT线性代数笔记>,转成Latex上传太麻烦,直接截图上传了,需要电子版的可以私信我.
- step1:准备歌词之《前端开发是个啥》
以下是给大家介绍前端开发的填词,曲子是李圣杰的<最近>,大家喜欢可以试试唱. 点赞关注超过100的平台,我后续上来发本人原唱视频(目前正在练习中...),另外大家觉得哪些词写得不好的,欢迎 ...
- pytorch --- word2vec 实现 --《Efficient Estimation of Word Representations in Vector Space》
论文来自Mikolov等人的<Efficient Estimation of Word Representations in Vector Space> 论文地址: 66666 论文介绍了 ...
- mysql 启动,停止,重启
启动mysql: 方式一:sudo /etc/init.d/mysql start 方式二:sudo start mysql 方式三:sudo service mysql start sudo ./ ...
- Charm Bracelet 一维01背包
A - Charm Bracelet Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Su ...
- 解决intellij idea新建maven项目,加载archetype慢的问题
File->settings 在VM Options内输入 -DarchetypeCatalog=internal 重启idea
- NodeJs-promise和async_await语法
Callback hell回调地域 当我们以同步的方式编写耗时的代码,那么就会阻塞JS的单线程,造成CPU一直等待IO完成才去执行后面的代码. 而CPU的执行速度是远远大于硬盘IO速度的,这样等待只会 ...
- AJAX优势、跨域方案及JSON数据格式和浏览器中JSON对象
ajax 不重新加载整个网页的情况下,更新部分网页的技术 注意:ajax只有在服务器上运行才能生效,我在本地一般用phpstudy 优点: 1.优化用户体验 2.承担了一部分本该服务器端的工作,减轻了 ...
- Ant Design 方法默认传值,加上其他参数
前端填坑之路Ant Design里面的一些触发方法,如OnChange,OnSelect等等,当你触发时,该时间会自动传一些值给方法. 这是Select里面的onChange调用,在红框中,他会自动传 ...