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

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

目录

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文件的方式创建对象,再使用注解的方式给创建的对象赋值。!!

相关文章:

  • 云服务器空间不足如何解决?
  • 【ArcGIS Pro微课1000例】0058:玩转NetCDF多维数据集
  • SpringCloud:认识微服务
  • C++面向对象学习笔记一
  • 第十六课 美化表格
  • 信号处理SCI期刊,中科院2区,专业性强,审稿速度快!
  • 证件照(兼容H5,APP,小程序)
  • 基于Java学生管理系统设计与实现(源码+部署文档)
  • 分享three.js和cannon.js构建Web 3D场景
  • VScode打开keil5软件的内容
  • 展锐S8000安卓核心板参数_紫光展锐5G核心板模块定制方案
  • 【C语言基础】:操作符详解(一)
  • Torchtext快速入门(一)——Vocab
  • 34461A数字万用表参数
  • AI加速(四)| 衣柜般的分层存储设计
  • Linux格式化输出当前时间
  • c++类和对象中
  • ATT汇编总结_9_静态库与动态库
  • VS Code For Web 深入浅出 -- 导读篇
  • 设计模式(一)前言
  • MyBatis
  • CAD机械零件平面绘制练习六
  • 相比Vue和React,Svelte可能更适合你
  • HTTP/HTTPS/TCP原理
  • 基于TCP的socket API,让你拥有另一套自己的服务器~
  • 关于IO的探究:BIO、NIO、AIO(未完待续)
  • API接口名称(item_search - 按关键字搜索淘宝商品)[item_search,item_get,item_search_shop等]
  • 拥抱云原生,Java与Python基于gRPC通信
  • 【node.js从入门到精通】使用express创建web服务器,路由,进行中间件的创建链接路由及其他中间件
  • 【C语言】-字符串函数和内存函数(下)
  • r语言使用rjags R2jags建立贝叶斯模型|附代码数据
  • wifi码小程序全面分析