idea中Field injection is not recommended提示
前言:最近intellij升级后,原本在类中注入的属性都提示Field injection is not recommended
在idea的设置中,使用属性值注入这个警告提示是可以在idea中取消的,但是为什么会有这个提示呢?这就不得不从依赖注入的3中方式说起了。
一,constructor构造器注入(特点:为了强制依赖,或者为了易变性);
二,getter & setter 方法注入(特点:为了可选的或者可变的依赖);
三,field属性注入也就是反射注入,@Autowired就是通过这种方式,这种方式是要尽量避免使用的,也就有了开头的提示信息。
以下就详细说下属性注入的坏处:
1,不能使用属性注入的方式构建不可变对象;
2,此时的类和依赖容器强耦合,不能在容器外使用;
3,你的类不能绕过反射(例如单元测试的时候)进行实例化,必须依赖容器才能实例化;
以上基本就是属性注入的几大劣势了, 但是可能有小伙伴回想,属性注入至少方便啊。比如有一种情况,一个类有超过10个的依赖,如果使用构造方法注入的话,构造方法会有10个参数是不是有点困扰呢??此时使用属性注入就很简洁。此时借用一句话来反击下就是:一个类有很多依赖是一个危险的标志(违背了单一职责原则!)
因此,出现的问题通过构造方法更改如下:
完
idea中Field injection is not recommended提示相关推荐
- Spring依赖注入提示:Field injection is not recommended
前言 1.介绍 今天在调试代码,发现IDEA提示@Autowired为警告(如上图所示),信息为:Field injection is not recommended.什么意思,Spring官方给的说 ...
- field injection is not recommended 的解决办法
问题概述 在项目开发过程中,使用基于字段变量的依赖注入(通过注解@Autowired进行注入)时(据大部分人在通常情况下都是使用@Autowired进行注入操作的)出现一个黄色警告下划线,提示 &qu ...
- @Autowired注解警告Field injection is not recommended
在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 大部分被警告的代码都是不严谨的地方,所以我深入了解了一下. 被警告的代码如下: @Autowired UserDao ...
- 使用@Autowired注解警告Field injection is not recommended
From: https://blog.csdn.net/zhangjingao/article/details/81094529 在使用spring框架中的依赖注入注解@Autowired时,idea ...
- idea 如何关闭 field injection is not recommended 警告
idea中有很多代码检查机制,比如命名是否遵循驼峰规则,是否有冗余代码,是否有魔法值等等,在依赖注入时,直接使用@Autowired注解进行注入时,可能会出现黄色小波浪线,提示你:field inje ...
- Field injection is not recommended的原因探解
本章的内容主要是想探讨我们在进行 Spring 开发过程当中,关于依赖注入的几个知识点.感兴趣的读者可以先看下以下问题: @Autowired,@Resource,@Inject 三个注解的区别 当你 ...
- ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题。(地理国情监测)解决步骤
ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题.(地理国情监测)解决步骤: (1)将你的excel表先通过excel转表工具,转化成表就生 ...
- TP框架中field查询字段
TP框架中field查询字段 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是file ...
- unity中app实现拖拽_10分钟让你实现在APP中对网络状态变化进行全局提示
永远不要期望用户按照你预设的步骤操作 APP 一个新项目刚刚开始推广工作,市场人员向我抱怨用户使用时总会出现各种各样的问题,大部分问题都是因为用户操作不当导致的,但是在用户眼中的结论就是"你 ...
最新文章
- java获取真实ip
- Java内部类详解(使用场景和好处、相关内部类的笔试面试题)
- Nginx缓存的配置调优,Tengine安装和配置。
- mysql 自动生成mapper_自动生成实体类、Mapper、Mapper.xml文件
- html动态生成按钮事件,javascript 动态生成按钮并添加事件时为什么不响应?
- 我朋友坚持只肯以银行卡转账的方式还我钱是为什么
- pytorch 入门学习 实现线性回归-5
- 裴蜀(贝祖)定理及其证明
- 十行代码编写一个Python小游戏,你准备好了吗?
- 学经济为什么学python_工具&方法丨划重点 ! 经济学专业学Python需要学哪些内容?——数据分析处理必知必会的知识点...
- 第一节 电 电流 电压 电路 基本电子元件
- MongoDB数据插入insert和save操作
- php实现迅雷链接的加密解密
- ERROR: 错误 1406。未能将值 写入项 \Software\Classes\CLSID\{4B75FA16-56AF-4DC4-941D-F84B279DDB15}\LocalServer3
- Unity 日志输出
- 第11章 角色页的删除、批量删除
- 【DM】教你用JDBC连接达梦数据库并进行增删改查
- hive插件 ranger_Ranger Hive-HDFS ACL同步
- 计算机专业论文docx,计算机专业毕业大学生论文.docx
- 北极没冰川了。。。南极下起了冻雨。。。
热门文章
- 路漫漫其修远兮——Linux发展大事记
- 如何解决cmd命令无法转到D盘的路径的问题
- 嵌入式系统学习整理-oneday-什么是嵌入式
- 计算机管理进行分区,如何硬盘分区_怎么硬盘分区-win7之家
- 【人工智能】基于YOLOv5+PyQt5开发的可视化人数检测系统【附项目报告+演示视频+完整代码】
- pycharm上传更新内容至linux服务器
- 30+行业头部企业相聚杭城,创邻科技“Graph+X”生态合作伙伴大会成功举办
- 生命科学领域下的“全球突破性十大技术”干货与分享
- 2020美国大选实时票数统计网站
- webpage结合Vue Loader打包单文件组件