Spring常用注解的详细介绍(包你学明白)

news/2024/5/2 1:47:59/文章来源:https://blog.csdn.net/weixin_44362089/article/details/127363134

目录

1. 为什么要使用注解?

2. 什么是注解?

3. 在Spring中使用注解的前期准备

4. @Component注解的详细介绍

 5. @Value注解的详解介绍

 6. @Autowired注解的详细介绍

7.  @Resource注解的详细介绍

 8. 怎么选择基于xml还是基于注解的方式创建对象并赋值呢?


1. 为什么要使用注解?

答:在最开始我们接触Spring的时候,我们大家都是在.xml文件中,通过<bean>标签来给要创建的对象赋值,这样以来我们就会写大量的<bean>标签,这就显得很冗余。因此,我们迫切需要一种更简单的方法,去给对象赋值。这种情况已经被Spring开发人员所解决,于是就有了今天我们要介绍的Spring的注解方式。

我们可以使用Spring的方式来创建对象,并且也可以使用注解给对象赋值。而不再是单纯的一直使用<bean>的set注入,构造注入,自动注入来创建对象和赋值。

补充:关于Spring中的set注入,构造注入,可以参考我前面写的:  http://t.csdn.cn/inw4n

           关于Spring中的自动注入(byName,byTpye),可以参考我前面写的   http://t.csdn.cn/T9Uhz

2. 什么是注解?

我们其实对注解这个词汇,既熟悉又陌生。适当的明白注解大概是什么,能让我们在初步学习Spring注解的时候,起码不会恐慌。

正式开始介绍注解:细心的查看我们之前学习的代码,你会发现,当我们在重写toString方法的时候,这个重写的方法上面就有一个@override。那么这个带有@符号的就是注解,这样看的话,其实注解也并不是距离我们很远。

 注意:所有的注解都是@interface类型的,你可以将鼠标放到注解上面,并且同时按住ctrl键,这样你就可以看到这个注解的定义。

 上图中的红色小圆点处会写这个注解的属性有哪些。只不过是@override这个注解没有自己的属性而已。

所以:我们可以在Spring中使用注解的方式创建对象,并且可以在使用注解创建对象的同时,给对象赋值。Spring中使用注解的方式创建对象是通过反射的方式创建的对象。

3. 在Spring中使用注解的前期准备

  • 必须在Pom.xml文件中加入Spring-context依赖,和Spring-aop依赖。由于Spring-context依赖中已经包含了Spring-aop依赖,因此我们最后添加一个Spring-context依赖就够了。
  • 在Spring的配置文件applicationContext.xml中,加上组件组件扫描器,也叫做注解扫描器。
<context:component-scan base-package="你使用注解的类所在的路径(写到包就行)"></context:component-scan>

4. @Component注解的详细介绍(创建对象的)

 5. @Value注解的详解介绍(给简单类型的属性赋值的)

 6. @Autowired注解的详细介绍(给引用类型的属性赋值的

7.  @Resource注解的详细介绍(给引用类型的属性赋值的)

 8. 怎么选择基于xml还是基于注解的方式创建对象并赋值呢?

答案:若是要经常改动创建对象的值,那么我们使用基于xml的方式去创建对象

           若是不经常改动创建对象的值,那么我们使用主机的方式去创建对象并赋值。

补充:我尝试过,可以使用xml文件的方式创建对象,再使用注解的方式给创建的对象赋值。!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_24875.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

专项测试怎样才“好玩”

01 关于测试分层 为什么我不吐槽那位产品经理呢?实际上,很多测试人员也没搞清楚在UI测试层我们应该做些什么。如上图,对于左边的测试金字塔,我相信很多测试人员都很清楚,也很向往自己的团队真的能够做到。但是呢,对于每一层的目标是否清楚?我见过很多人,在单接口测试时…

LAXCUS授权开源协议 第2版

LAXCUS公共许可证 第2版 Laxcus Public License version 2 本许可证是第1版本的延续&#xff0c;仅针对LAXCUS分布式操作系统及其衍生子版本&#xff0c;围绕LAXCUS分布式操作系统设计开发的硬件、硬件驱动程序、应用软件不受本许可证约束。 相比第1版本&#xff0c;第2版本更…

php宝塔搭建MineAdminVue开源基于Hyperf框架后台权限管理系统源码

大家好啊&#xff0c;我是测评君&#xff0c;欢迎来到web测评。 有个朋友前几天发消息给我&#xff0c;让我录制一个开源基于Swoole的后台管理系统搭建教程视频&#xff0c;所以抽时间研究了一下搭建部署流程&#xff0c;现在分享给大家。 系统介绍 这是一套基于Hyperf框架开发…

vmware workstation虚拟机无法连接网络

vmware workstation虚拟机无法连接网络 问题描述&#xff1a;在vmware workstation虚拟机上安装了Debian系统&#xff0c;打开Debian系统后却发现系统无法连接到网络&#xff08;或者是电脑插入网线虚拟机可以访问网络&#xff0c;但是不插入网线连接WiFi虚拟机无法连接网络&a…

神经网络现状综述,神经网络现状分析

bp神经网络研究现状 BP网络的误差逆传播算法因有中间隐含层和相应的学习规则&#xff0c;使得它具有很强的非线性映射能力&#xff0c;而且网络的中间层数、各层神经元个数及网络的学习系数等参数可以根据实际情况设定&#xff0c;有很大的灵活性&#xff0c;且能够识别含有噪…

保姆教程系列二:国产数据库达梦无缝迁移

系列文章目录 保姆教程系列一、国产达梦数据库安装教程 保姆教程系列二、国产数据库达梦无缝迁移 保姆教程系列三、国产数据库整合Spring boot 文章目录系列文章目录前言简介一、登录达梦监控系统二、新建用户三、开始迁移四、下篇预告总结前言 请各大网友尊重本人原创知识分享…

04流程控制

本文仅作为个人纪录 流程控制 流程控制的作用&#xff1a; 流程控制语句是用来控制程序中各语句执行顺序的语句&#xff0c;可以把语句组合成能完成一定功能的小逻辑模块 控制语句的分类&#xff1a; 控制语句分为三类&#xff1a;顺序、选择和循环。 “顺序结构” 代表 “先执…

linux服务器如何查看硬盘序列号

命令: hdparm -I 硬盘绝对路径 --其中参数可以使用 “I”也可以使用 “i” ,只是大写的参数展示的数据更详细; 注:这个命令普通用户无法使用,需要使用管理员权限;

网易云ncm,QQ音乐qmc,mgg,mflac,酷狗kgm解锁转换为flac格式

酷狗音乐怎么转换mp3格式&#xff1f;使用酷狗音乐听歌的人比较多&#xff0c;通常我们都是在手机、电脑等有联网的情况听的&#xff0c;而一旦想下载下来在其他设备上听的话&#xff0c;就会碰到问题了。 在酷狗上下歌曲的时候&#xff0c;发现下的是kgm、kgma格式&#xff0c…

ICML 2020 Work shop 图对比GRACE

talk 这篇文章还是有可读的必要性。 关注点&#xff1a; 1. 丢弃边 丢弃节点的 视图增强方法。 2. 不同于原来的 dgi gmi mvgrl 采用 JS散度 或者 Infomax的目标函数&#xff0c;本文采用 infonce。 3. Pubmed数据集引发的 对 评价指标 和 评价方法的 讨论 缺点&#xff1a; …

14天阅读挑战赛(学习建议)

14天阅读挑战赛努力是为了不平庸~ 算法学习有些时候是枯燥的&#xff0c;这一次&#xff0c;让我们先人一步&#xff0c;趣学算法&#xff01;欢迎记录下你的那些努力时刻&#xff08;算法学习知识点/算法题解/遇到的算法bug/等等&#xff09;&#xff0c;在分享的同时加深对于…

Inductive Entity Representations from Text via Link Prediction

研究问题 使用文本信息完成inductive KGC任务&#xff0c;并在inductive场景下提出了一些新的评估协议 背景动机 现有的基于结构的KGE模型无法处理动态图中新加入的实体&#xff0c;而这在现实生活中非常常见&#xff08;inductive 场景定义&#xff1a;关系已知、实体未见&…

A-Level真题每期一练(11)

上期真题答案&#xff1a;1.D 2.B 3.D 4.C 5.A 接下来是今天的真题&#xff0c;一起练起来呀~ 1. An indirect tax on the production of a good will have no effect on price if demand is A inversely related to price. B of unitary elasticity. C perfectly elastic. D p…

OpenCV-Python学习(8)—— OpenCV 颜色表操作

1. 知识点 学习查找表 cv.LUT()【look up table】&#xff1b;颜色查找表&#xff1b;函数 cv.applyColorMap() 的使用。 2. cv.LUT() 函数说明 2.1 函数使用 cv.LUT(src, lut, dst)2.2 参数说明 参数说明src表示原始图像。lut表示查找表的地址&#xff0c;对于多通道图像…

mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS

目录 一、背景 二、问题 三、解决方案 1、网上的答案&#xff1a; 2、自己的方案&#xff1a; 四、总结&#xff1a; 一、背景 框架&#xff1a;springboot2.2.4.RELEASE、mybatis-plus3.3.1版本 二、问题 使用mybatis-plus已集成的自动生成代码框架生成代码 我当时查…

kubernets集群升级

1、环境介绍 操作系统&#xff1a;centos 7.9 kubernetes版本&#xff1a;v1.23 kubelet kubeadm kubectl版本&#xff1a;1.23.4 containerd版本&#xff1a;1.4.13 升级版本&#xff1a;v1.24.6–>v1.25.2 注意:使用kubeadm config升级失败&#xff0c;随改成逐级升级 网络…

系统分析师 - 纲要章节汇总

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 上午题 - 综合知识 章节考察内容分值计算机组成与体系结构 CISC、局部性原理、流水线、多级存储(Cache&#xff0c;内存&#xff0c;磁盘)、校验码、Flynn多处理机5 - 6操作系统PV操作与前趋图、虚拟存储、位示图…

C++类和对象(三)

文章目录前言1. 再谈构造函数&#x1f351; 构造函数体赋值&#x1f351; 初始化列表&#x1f351; 特性&#x1f345; 特性一&#x1f345; 特性二&#x1f345; 特性三&#x1f345; 特性四&#x1f351; explicit 关键字2. static成员&#x1f351; 概念&#x1f351; 特性&…

推荐有礼 | 京东云推荐返利活动说明

京东云云推客是京东云推出的服务于代理商群体的交易服务平台。为代理商提供可代理产品、分销获客工具、渠道管理工具、对账结算工具等,赋能代理商数字化升级,实现降本增效。京东云云推客是京东云推出的服务于代理商群体的交易服务平台。为代理商提供可代理产品、分销获客工具…

java学习第18步——Docker镜像

Docker管理镜像的一个工具软件1 简介(3个小时搞定)1.1 Docker介绍1.2 解决2个问题&#xff08;开发时依赖的包版本不一致&#xff0c;软件不一致&#xff09;2 Docker和虚拟机3 Docker镜像和容器&#xff08;镜像就是1个压缩文件&#xff0c;Docker软件可以来操作它&#xff0c…