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

2年前Java源码33173
Spring常用注解的详细介绍(包你学明白) 白胡子永远 于2022-10-17 15:30:04发布 543 收藏 37 文章标签: Spring注解的详细解释 Component Value Autowired Resource

目录

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

相关文章

windows环境下elasticsearch安装超详细步骤

windows环境下elasticsearch安装超详细步骤...

【andriod】设备APP开发之各种细节部署和操作

【andriod】设备APP开发之各种细节部署和操作...

[ 网络安全基础篇 ]常见 Web 漏洞的描述及其修复建议(相对全面)

[ 网络安全基础篇 ]常见 Web 漏洞的描述及其修复建议(相对全面)...

Back-off restarting failed container报错

Back-off restarting failed container报错...

Java开发者福利:带你快速掌握Arthas的使用

Java开发者福利:带你快速掌握Arthas的使用...

Grasscutters 2.8私服搭建

Grasscutters 2.8私服搭建...