当前位置: 首页 > news >正文

JavaEE进阶5/25(属性注入)

目录

1.更简单的存取Spring对象

2.获取Bean对象(对象装配)DI

3.  Resource注入

4.Resource注入和Autowired注入的区别


1.更简单的存取Spring对象

2.获取Bean对象(对象装配)DI

对象装配(对象注入)有三种方法是实现

1.通过属性注入

为什么叫属性注入,因为你看上面第二行就像声明一个属性一样     

main方法不能用属性注入(Autowired)

    

2.构造方法注入

就和普通的构造方法一样

 当前类只有一个构造方法的时候可以省略,多个的时候还是要写Autowired 所以建议还是要带上Autowired吧。

当只有一个的时候这是spring为了推广这种写法给我们的好处,就是省略写了Autowired

3.Setter注入

构造个Set类名 方法,然后前面别忘了加Autowired

先写private 类 类名 构造个空的 再用set用Spring传入对象 

三者的优缺点,

1.属性注入,优点使用简单,但是Spring官方不提倡使用,因为

 第一条因为final是要直接赋值的,要么直接赋值,要么构造方法赋值

第二条是Autowired来自于Spring,Spring是Ioc容器,它只适用于Ioc容器

第三条是,更容易违背单一设计原则,不够专一。

2.set注入

优点:更加符合单一设计原则

缺点:

1.不能注入不可变对象,不能注入final修饰的

2.注入对象可被修改

 这一点i相比于属性注入更加危险

3.构造方法注入,构造方法注入好处多多。

1.可以注入不可变对象

2.注入的对象不能被修改(1.final修饰的对象 2.构造方法只在类加载的时候执行一次)

3.通用性更强(相比于属性注入只适合于IOC容器)

4.是彻底完全构造对象的(构造方法的特性)

缺点就是没有属性注入简单

小节:实际开发中大部分还是选择属性注入,因为它够简单。

它仍然是主流的实现方式

3.  Resource注入

这是java中的JDK提供的方法,也是提供属性注入的。写法和Autowired一样

他们之间有什么区别呢?

 1.Resource可以用于set注入和属性注入,但是Autowired多了一个构造方法注入

2.Resource来源于JDK  Autowired来源于Spring

3.Resource支持更多的参数设置,例如name设置,根据名称获取Bean对象 ,而Autowired只required参数

4.Resource注入和Autowired注入的区别

它们都是根据类型和名称一块找的,区别就是顺序不同

Resource是先根据类型找 如果

则先找到 student1 student2(他们都是Student类),然后再根据名字找发现没有student这个名字的对象。那么就会报错(but find 2) 

Resource解决方案:由于Resource可以传入name属性

这样解决就会找到student2对象 

 Qualifier  过滤,预选赛

相关文章:

JavaEE进阶5/25(属性注入)

目录 1.更简单的存取Spring对象 2.获取Bean对象(对象装配)DI 3. Resource注入 4.Resource注入和Autowired注入的区别 1.更简单的存取Spring对象 2.获取Bean对象(对象装配)DI 对象装配(对象注入)有三种方…...

【Java学习记录-4】相关名词和概念记录(持续更新)

目录 1 注解2 包3 权限修饰符4 状态修饰符1. final2. static 5. 多态6.抽象类7.接口 1 注解 Override是一个注解,可以帮助我们检查重写方法的方法声明的正确性 注意: 私有方法不能被重写(父类私有成员子类是不能继承的)子类方法…...

《程序员面试金典(第6版)》面试题 16.25. LRU 缓存(自定义双向链表,list库函数,哈希映射)

题目描述 设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。 题目传送门:…...

kong网关启用jwt认证插件

认证流程: 1、创建一个用户 2、生成jwt的所需要的key和密钥 3、在https://jwt.io/的生成jwt token 4、启用jwt插件 5、发送请求的时候携带jwt的token信息 官方指导:https://docs.konghq.com/hub/kong-inc/jwt/configuration/examples/ 一、创建一个新的…...

day12 - 图像修复

在图像处理的过程中,经常会遇到图像存在多余的线条或者噪声的情况,对于这种情况我们会先对图像进行预处理,去除掉对图形内容有影响的噪声,在进行后续的处理。 本节实验我们介绍使用图像膨胀来处理图形的多余线条,进行…...

1720_Linux学习中的问题处理

全部学习汇总:GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 这个有点学习的方法论的意思,画个滋味导图顺便整理一下。 遇到问题的时候,解决的方法大致有3中,而针对学习的建议有一部分是…...

七人拼团系统开发模式详解

七人拼团是最近兴起的一个模式,它通过更人性化的奖励机制,将产品利润最大化让利给参与拼团的用户,达到促进用户主动积极裂变和团队平台引流提升销量的效果,下面就来详细说一下这个模式。 七人拼团最大的特点,就是结合了…...

CPU性能优化:分支预测

条件跳转引起的控制冒险虽然也可以通过在流水线中插入空泡来避免,但是当流水线很深时,需要插入更多的空泡。一个20级的流水线为例,如果一条指令需要上一条指令的执行结束才能执行,则需要在这两条指令之间插入19个空泡,…...

过滤器Filter,拦截器Interceptor

过滤器Filter 快速入门 详情 登录校验-Filter package com.itheima.filter;import com.alibaba.fastjson.JSONObject; import com.itheima.pojo.Result; import com.itheima.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.util.StringUtils…...

kafka整理

kafka整理 一、kafka概述 kafka是apache旗下一款开源的顶级的消息队列的系统, 最早是来源于领英, 后期将其贡献给apache, 采用语言是scala.基于zookeeper, 启动kafka集群需要先启动zookeeper集群, 同时在zookeeper记录kafka相关的元数据 kafka本质上就是消息队列的中间件产品…...

为什么有些情况下需要重写equals()和hashCode()方法?

目录 方法作用实战案例 方法作用 equals():判断对象是否相等,比如判断是否能放入Set集合中 情况1:没有重写equals()方法:由于所有类的默认基类都是Object类,所以默认使用Object类的equals()方法,那就是对象…...

14-Vue技术栈之Vue3快速上手

目录 1.Vue3简介2. Vue3带来了什么2.1 性能的提升2.2 源码的升级2.3 拥抱TypeScript2.4 新的特性 1、海贼王,我当定了!——路飞 2、人,最重要的是“心”啊!——山治 3、如果放弃,我将终身遗憾。——路飞 4、人的梦想是…...

JavaScript高级三、深入面向对象

零、文章目录 JavaScript高级三、深入面向对象 1、编程思想 (1)面向过程介绍 面向过程:分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。 (2&…...

static

1. 静态局部变量 : 用于函数体的内部修饰变量,这种变量的生存期长于该函数。 2. 静态全局变量: 定义在函数体外,用于修饰全局变量,表示该变量只在本文件可见。 3. 静态函数: 准确的说,静态函数跟…...

zabbix动作执行失败 No media defined for user.

问题 zabbix动作执行失败 No media defined for user. 详细问题 解决方案 1(导航栏)用户 → \rightarrow →报警媒介 → \rightarrow →添加 2 选择类型 → \rightarrow →收件人 → \rightarrow →添加 3 更新 解决原因 笔者由于未点击更新钮导…...

JavaScript this 关键字

在JavaScript中,this关键字是一个特殊的关键字,它在函数内部使用,用于引用当前执行上下文中的对象。 this的值是在函数调用时动态确定的,它取决于函数的调用方式。下面列举了几种常见的调用方式和this的取值: 1. 全局…...

ubuntu基本信息查询

查询CPU信息 cat /proc/cpuinfo cat /proc/stat top lscpu 查询内存 free -m Options: -b, --bytes show output in bytes -k, --kilo show output in kilobytes -m, --mega show output in megabytes -g, --giga show output in gigab…...

Revit问题:创建牛腿柱和快速生成圈梁

一、Revit中如何用体量创建牛腿柱 牛腿:悬臂体系的挂梁与悬臂间必然出现搁置构造,通常就将悬臂端和挂梁端的局部构造,又称梁托。牛腿的作用是衔接悬臂梁与挂梁, 并传递来自挂梁的荷载。牛腿柱可以用于桥梁、厂房的搭建&#xff0c…...

k8s节点删除

1.设置该节点为不可调度状态 kubectl cordon k8s-node01 2.驱逐该节点上的pod kubectl drain k8s-node01 --ignore-daemonsets --delete-local-data 若是有pod删除不掉则加上--force参数强制驱逐 3.从集群中删除该node节点 kubectl delete node k8s-node01 4.在k8s-node…...

45°装备系统

45装备系统,规则:1、45 脚后剧情,场景地面出现,个体视角,非群体。2、产生寒暖对立,衣饰自动改变。3、地图下方块蛇,脚步顺逆差,让衣饰自动改变后出现形态特效。(形成进入…...

8通道采集控制终端:工业物联网边缘智能的核心硬件解析

1. 项目概述:从“通道”到“终端”的工业物联进化最近在调试一个老旧产线的数据采集项目,现场一堆4-20mA的传感器、干接点的报警信号,还有几个需要远程启停的电机,线缆接得跟蜘蛛网一样。甲方负责人看着头疼,问我有没有…...

GD32 MCU与RT-Thread OS融合实战:从芯片选型到物联网节点开发全解析

1. 项目概述:一次技术路演的深度复盘最近,我作为深度参与者,完整经历了兆易创新与RT-Thread联合举办的MCU技术路演活动。这不仅仅是一场简单的产品推介会,更像是一次面向广大嵌入式开发者、硬件工程师和产品经理的“技术公开课”。…...

windows下vs 2015 libtorrent库的配置,vs2015下-boost-openssl-libtorrent的配置

libtorrent依赖OpenSSL和boost库,首先要编译Openssl和boost库。 1、安装ActivePerl,下载地址:网上找。 安装完后配置环境变量(一般安装成功后,环境变量就已经配置好了,如果没有配置自己配置环境变量): …...

Windows网络音频革命:Scream虚拟声卡完整指南

Windows网络音频革命:Scream虚拟声卡完整指南 【免费下载链接】scream Virtual network sound card for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/sc/scream 还在为有线音频的束缚而烦恼吗?想象一下,将你的Window…...

5个实战技巧:Unlock-Music浏览器端音乐解密技术深度解析

5个实战技巧:Unlock-Music浏览器端音乐解密技术深度解析 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: htt…...

《纳瓦尔宝典》幸福篇精读:程序员如何在敲码之余获得内心的平静与幸福

本文是《纳瓦尔宝典》第三部分"学习幸福"的完整精读笔记,专为程序员群体量身打造。结合技术职场高压、内卷严重的现状,拆解纳瓦尔关于幸福的核心哲学,提供可落地的日常实践方法。引言:为什么程序员更需要学习幸福&#…...

暗黑破坏神2终极角色编辑器:打造完美角色的完整指南

暗黑破坏神2终极角色编辑器:打造完美角色的完整指南 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 想要在暗黑破坏神2中体验完美的角色构建吗?厌倦了重复刷装备的枯燥过程…...

华硕笔记本性能优化终极指南:G-Helper轻量控制工具完整解析

华硕笔记本性能优化终极指南:G-Helper轻量控制工具完整解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenboo…...

树莓派4B部署YOLOv8保姆级避坑指南:从PyTorch版本选择到模型推理全流程

树莓派4B部署YOLOv8实战手册:从版本适配到高效推理的深度解析 引言 在嵌入式设备上部署现代计算机视觉模型,就像给一辆微型赛车装上F1引擎——潜力巨大但挑战重重。最近帮朋友在树莓派4B上部署YOLOv8时,我们花了三天时间才走出"依赖地狱…...

Graphormer实战:用最短路径和虚拟节点搞定分子性质预测(附PyTorch代码)

Graphormer实战:从分子结构到性质预测的完整实现指南 在药物发现和材料科学领域,准确预测分子的物理化学性质可以大幅加速研发进程。传统方法依赖昂贵的实验测量或复杂的量子化学计算,而图神经网络(GNN)和Transformer的结合——Graphormer&a…...