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

2023-05-16

问题:
 在使用变量方式依赖注入时,提示Field injection is not recommended

@Autowired
LogService logService;

 虽然变量方式注入非常简洁,但是他不能明确的指明依赖,所以有时候我们使用这种方式会遇到依赖注入为null的情况。这种方式过于依赖容器,当没有启动整个依赖容器时,这个类就不能被加载。
因此:
 编译器给我们建议是使用构造器注入,因为使用构造器方式时已经显式注明必须强制注入。通过强制指明依赖注入来保证这个类的运行。
总结:
变量方式注入应该尽量避免,使用set方式注入或者构造器注入,这两种方式的选择就要看这个类是强制依赖的话就用构造器方式选择依赖的话就用set方法注入。

参考博客
更多内容

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用@Autowired注解警告Field injection is not recommended 的相关文章

  • c# - 如何迭代类字段并设置属性

    我不确定这是否可行 但我想迭代一个类并设置字段成员属性 而不显式引用字段对象 public class Employee public Person person new Person public void DynamicallySetP
  • 到底什么是现场注入以及如何避免它?

    我在一些关于 Spring MVC 和 Portlet 的文章中读到场注入不推荐 据我了解 场注入是当你注入一个 Bean 时 Autowired像这样 Component public class MyComponent Autowire
  • Sitecore + Lucene 搜索 FieldQuery 带空字符串

    我正在使用 FieldQuery 对象创建 Sitecore Ecommerce Search Query 然后 我使用 LuceneQueryBuilder 类将 Sitecore 查询转换为 Lucene Net Search Quer
  • 如何动态访问 Django 模型字段详细名称?

    我想访问我的模型字段 verbose name 我可以通过这样的字段索引来获取它 model meta fields 2 verbose name 但我需要动态获取它 理想情况下应该是这样的 model meta fields locati
  • 自定义 Django 模型字段中的“对象没有属性”

    我正在尝试创建一个 Django 模型字段 该字段表示 HTML 中包含天 小时 分钟和秒文本输入字段的持续时间 并使用 ical 格式 RFC5545 将持续时间存储在数据库中 这与我的问题有关如何在 Django 中创建一个 ical
  • 如何设计一个带有“注释”字段的类?

    想象一下 我们有某种包含数百种消息类型的协议 我们希望通过 C 类对每种消息类型进行建模 由于每个类应该能够自动处理每个字段 一个自然的解决方案是只拥有一个std tuple具有所有必需的类型 std tuple
  • spring错误没有JdbcTemplate类型的合格bean

    我有一个正在创建的 Spring Boot 应用程序Datasource and JdbcTemplate手动在我的配置中 因为我需要解密数据源密码 我正在使用 tomcatDataSource org apache tomcat jdbc
  • 我的自动装配数据源在 Spring 中返回 null,这是怎么回事?

    我正在尝试设置我的 dataSource 以获取连接 但它在 conn dataSource getConnection 上返回 null 这是我的 DAO 中的相关代码 Autowired public void setDataSourc
  • Java 兼容性的公共字段

    我最近对 Kotlin 作为一种语言很感兴趣 因为我们开发的平台是基于 Java 6 的 因此缺乏近年来为 Java 带来的任何语法糖 只有一件事使得在开发中无法使用 Kotlin 而不是 Java 那就是我们开发的平台在内部使用了一些反射
  • 抽象类、接口和自动装配

    我有以下主要课程 public class Startup implements UncaughtExceptionHandler Autowired private MessageListener messageListener priv
  • Symfony2 createQuery 按字段排序

    你好 我在 phpmyadmin 中写了这个查询 它可以工作 gr8 SELECT u FROM users AS u WHERE u id 14469 OR u id 685 ORDER BY u id field u id 14469
  • 类“属性”与“成员”与“变量”与“字段”的术语[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 似乎开发人员在引用存储在类实例中的数据时经常互换使用这些术语 每个术语之间是否存在技术差异 或者可以互换使用它们吗 根据不同的答案 类
  • Spring @Autowired RestTemplate 为 null [重复]

    这个问题在这里已经有答案了 我是春天的新手 我使用 Java 开发使用带证书的 RESTful 服务的服务 这是我的配置类 package configuration import org apache http client HttpCl
  • 重命名 MongoDB 数组中嵌入文档中的字段不起作用

    Step One gt db myCollection find id ObjectId 2358523892345 field1 value 1 field2 subfield1 value 2 Subfield2 value 3 fie
  • django REST框架多源领域

    假设我的 models py 中有这些 models py class Theme models Model An theme is an asset of multiple levels adventure models ForeignK
  • @Autowire注释的问题(空)

    我在验证器类中自动连接的两个服务有问题 这些服务工作正常 因为在我的控制器中是自动连接的 我有一个 applicationContext xml 文件和 MyApp servlet xml 文件 我的基础包是 es unican meteo
  • 公共领域有哪些替代方案?

    我正在用 java 编写一个游戏 正如问题标题建议的那样 我在类中使用公共字段 暂且 据我所知 公共领域很糟糕 我有一些理解其中的原因 但如果有人能澄清为什么你不应该使用它们 那将不胜感激 问题是 从我所看到的来看 这似乎是合乎逻辑的 是使
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • 动态添加字段到数据类对象

    我正在编写一个库来访问 REST API 它返回带有用户对象的 json 我将其转换为 dict 然后将其转换为数据类对象 问题是并非所有字段都是固定的 我想动态添加其他字段 未在我的数据类中指定 我可以简单地为我的对象分配值 但它们不会出
  • 使用spring自动装配时如何传递构造函数参数?

    我们的项目使用 spring DI IoC 所以我使用自动装配来注入 beans 程序在实例化期间需要将参数传递给对象 并且参数是在运行时 而不是在编译时 知道的 如何在使用自动装配时实现这一点 示例代码如下 界面 IMessage pac

随机推荐

  • 【string 与 char】C++ 中string与char

    C 43 43 中string类的定义如下 xff1a span class token comment A string of 64 c char span span class token keyword typedef span ba
  • Ubuntu16.04 登陆完后出现蓝屏

    解决方法 xff1a 问题分析启动 Ubuntu 可以进入登录界面 xff0c 说明系统是可以运行起来的 没有发生大块的核心数据损坏 xff0c linux 系统一般都可以修复 xff0c 一定要淡定 于是开始放狗 xff08 google
  • 招聘会岗位筛选爬虫——广州市高校毕业生就业指导中心(广州市高指中心)

    2020 09 21更新 xff1a 目前该网站已实现此功能 xff1a 为什么爬虫 xff1f 由于没有筛选功能 xff0c 导致获取相关想要的信息费时费力 目标网站 xff1a 广州市高校毕业生就业指导中心的某个现场招聘会 以 2019
  • Access to from origin ‘null‘ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ heade

    Access to XMLHttpRequest at span class token string 39 http localhost 8080 postgres mvt source 834 428 10 39 span from o
  • [实验一] 选择器

    该个栏目的博客都是基于南京大学的数字逻辑与计算机组成的课程设计 xff0c 方便以后进行总结归纳而准备的 这次实验是实验一 xff1a 选择器 设计一个简单的选择器 xff0c 介绍一些常用的多路选择器的设计方法 Verilog语言中的al
  • VMware虚拟机中安装的Linux系统无法识别U盘解决方法

    文章目录 1 问题描述2 解决方法3 参考文献 1 问题描述 如图1所示 xff0c 在VMware安装的Linux系统 xff08 Ubuntu 无法读取U盘 图 1 U盘读取失败 2 解决方法 原因在于所用的U盘为3 0接口 xff0c
  • 解决error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"两个方法

    简述 在Windows下的pycharm安装出现 Microsoft Visual C 43 43 14 0 is required Get it with 34 Microsoft Visual C 43 43 Build Tools的解
  • ubuntu 18.04源码安装mysql 5.7.18

    一 安装依赖包 sudo apt update sudo apt install cmake bison libncurses5 dev build essential 二 下载 mysql 5 7 18源码 源码 传送门 选择那个包含bo
  • 什么叫做装箱和拆箱?一看就懂系列

    有很多同学对与装箱和拆箱还是有点搞不太明白 首先讲一下概念 xff1a 1 装箱指的是把值类型转化为引用类型 2 拆箱当然指的就是把引用类型转化为值类型 估计很多同学可能还分不清哪些是属于引用类型和值类型 这个就需要自己去强化记忆一下了 光
  • java 和javascript的区别?你是否还在把他们混为一谈呢

    1 javascript是基于对象的 xff0c 它是一种脚本语言 xff0c 是一种基于对象和事件驱动的编程语言 xff0c 因而它本身提供了非常丰富的内部对象供设计人员使用 而Java是面向对象的 xff0c 即Java是一种真正的面向
  • vs2019智能提示设置为中文

    官网修改中文提示地址 xff1a https docs microsoft com zh cn dotnet core install localized intellisense 1 去官网下载intellisense语言包 下载链接 x
  • .net中的定时任务

    FluentScheduler是什么 xff1f FluentScheduler是 net中的任务调度框架 xff0c 也就是你如果想在 net程序跑一段代码 xff0c 同时又不影响主程序的运行时 就可以使用FluentScheduler
  • 实用的Visual Studio插件

    打开Visual Studio 扩展 管理扩展 安装自己需要的插件 01 CodeMaid CodeMaid快速整理代码文件 xff0c 规范你的代码 xff0c 提高代码阅读体验 代码自动对齐 xff0c 格式化代码 xff08 ps x
  • mysql 数据库信息探索

    mysql 数据库信息探索 xff08 1 xff09 查询数据库的表数量 SELECT COUNT TABLES table schema FROM information schema TABLES GROUP BY table sch
  • .net 6 基于AspNetCoreRateLimit的限流

    1 安装包 AspNetCoreRateLimit 2 在appsetting cs中加入IpRateLimiting配置节点 span class token comment 限流配置 span span class token stri
  • 关于汉字转拼音并排序解决方案

    使用方法 xff1a 写一个静态帮助类 span class token keyword public span span class token keyword static span span class token keyword c
  • .NET Core6 中使用AutoMapper

    1 引入AutoMapper包 2 新建一个类 xff1a MappingProfile xff0c 类名自定义 xff0c 但是必须要继承 Profile类 用于创建映射规则 如图 xff1a Student为源数据 xff08 我这里是
  • 使用Python调用百度OCR

    使用Python调用百度OCR 注册 登录百度智能云创建应用安装python SDK接口说明代码实现 xff08 本地图片 xff09 代码实现 xff08 使用url上的图片并使用可选参数 xff09 注册 登录百度智能云 注册请点击 登
  • 001 超全C语言程序设计概念

    前言 此笔记主要参考自赵海英老师的C语言课程 xff0c 此笔记是在考研重新学习C语言的情况下进行的整理 xff0c 主要用于后续的C语言概念温故知新 第一章 基础知识 1 数制及转换 四种数制 xff1a 二进制 十进制 八进制 十六进制
  • 使用@Autowired注解警告Field injection is not recommended

    问题 xff1a 在使用变量方式依赖注入时 xff0c 提示Field injection is not recommended 64 Autowired LogService logService 虽然变量方式注入非常简洁 xff0c 但