前言:最近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提示相关推荐

  1. Spring依赖注入提示:Field injection is not recommended

    前言 1.介绍 今天在调试代码,发现IDEA提示@Autowired为警告(如上图所示),信息为:Field injection is not recommended.什么意思,Spring官方给的说 ...

  2. field injection is not recommended 的解决办法

    问题概述 在项目开发过程中,使用基于字段变量的依赖注入(通过注解@Autowired进行注入)时(据大部分人在通常情况下都是使用@Autowired进行注入操作的)出现一个黄色警告下划线,提示 &qu ...

  3. @Autowired注解警告Field injection is not recommended

    在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 大部分被警告的代码都是不严谨的地方,所以我深入了解了一下. 被警告的代码如下: @Autowired UserDao ...

  4. 使用@Autowired注解警告Field injection is not recommended

    From: https://blog.csdn.net/zhangjingao/article/details/81094529 在使用spring框架中的依赖注入注解@Autowired时,idea ...

  5. idea 如何关闭 field injection is not recommended 警告

    idea中有很多代码检查机制,比如命名是否遵循驼峰规则,是否有冗余代码,是否有魔法值等等,在依赖注入时,直接使用@Autowired注解进行注入时,可能会出现黄色小波浪线,提示你:field inje ...

  6. Field injection is not recommended的原因探解

    本章的内容主要是想探讨我们在进行 Spring 开发过程当中,关于依赖注入的几个知识点.感兴趣的读者可以先看下以下问题: @Autowired,@Resource,@Inject 三个注解的区别 当你 ...

  7. ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题。(地理国情监测)解决步骤

    ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题.(地理国情监测)解决步骤: (1)将你的excel表先通过excel转表工具,转化成表就生 ...

  8. TP框架中field查询字段

    TP框架中field查询字段 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是files !!!! 不是fields 也不是file ...

  9. unity中app实现拖拽_10分钟让你实现在APP中对网络状态变化进行全局提示

    永远不要期望用户按照你预设的步骤操作 APP 一个新项目刚刚开始推广工作,市场人员向我抱怨用户使用时总会出现各种各样的问题,大部分问题都是因为用户操作不当导致的,但是在用户眼中的结论就是"你 ...

最新文章

  1. java获取真实ip
  2. Java内部类详解(使用场景和好处、相关内部类的笔试面试题)
  3. Nginx缓存的配置调优,Tengine安装和配置。
  4. mysql 自动生成mapper_自动生成实体类、Mapper、Mapper.xml文件
  5. html动态生成按钮事件,javascript 动态生成按钮并添加事件时为什么不响应?
  6. 我朋友坚持只肯以银行卡转账的方式还我钱是为什么
  7. pytorch 入门学习 实现线性回归-5
  8. 裴蜀(贝祖)定理及其证明
  9. 十行代码编写一个Python小游戏,你准备好了吗?
  10. 学经济为什么学python_工具&方法丨划重点 ! 经济学专业学Python需要学哪些内容?——数据分析处理必知必会的知识点...
  11. 第一节 电 电流 电压 电路 基本电子元件
  12. MongoDB数据插入insert和save操作
  13. php实现迅雷链接的加密解密
  14. ERROR: 错误 1406。未能将值 写入项 \Software\Classes\CLSID\{4B75FA16-56AF-4DC4-941D-F84B279DDB15}\LocalServer3
  15. Unity 日志输出
  16. 第11章 角色页的删除、批量删除
  17. 【DM】教你用JDBC连接达梦数据库并进行增删改查
  18. hive插件 ranger_Ranger Hive-HDFS ACL同步
  19. 计算机专业论文docx,计算机专业毕业大学生论文.docx
  20. 北极没冰川了。。。南极下起了冻雨。。。

热门文章

  1. 路漫漫其修远兮——Linux发展大事记
  2. 如何解决cmd命令无法转到D盘的路径的问题
  3. 嵌入式系统学习整理-oneday-什么是嵌入式
  4. 计算机管理进行分区,如何硬盘分区_怎么硬盘分区-win7之家
  5. 【人工智能】基于YOLOv5+PyQt5开发的可视化人数检测系统【附项目报告+演示视频+完整代码】
  6. pycharm上传更新内容至linux服务器
  7. 30+行业头部企业相聚杭城,创邻科技“Graph+X”生态合作伙伴大会成功举办
  8. 生命科学领域下的“全球突破性十大技术”干货与分享
  9. 2020美国大选实时票数统计网站
  10. webpage结合Vue Loader打包单文件组件