spring中的annotation简介

2023-05-16

1.注解介绍

注解,是一种用来描述数据的数据。

比如说@override表示我们重载父类函数。如果我们不用这个注解,程序也能执行,但是我们加了这个注解代表我告诉编译器这个方法是一个重写的方法。如果父类中不存在该方法 就会报错(也能避免自己写的时候的typo)----就是说我们用注解,就是为了告诉JVM我们这个是干什么的,从而提高代码可读性和程序健壮性。(注解本身不含逻辑,他就是一个声明,来说明这个被注释的地方,含有某种特定的逻辑)

注解可用在类方法参数变量构造器,声明特殊修饰符等等。

在spring中的bean有什么含义呢?

之前没有注解以前如果我们要声明一个bean 只能通过XML配置的方式。(写入XML文件中)

但是有了注解,我们可以直接写在代码上。好处是啥?代码少了,不用分离了(因为像这种注解是和代码联系非常紧密的,因此离代码块近一点比较好。如果没有那么紧密的,单独放一个XML文件也还行(比如说那种配hi全局变量))

2.Spring中常见的注解

@Autowired:此注解用于构造方法、字段、setter方法和注解类型。显示声明依赖,根据type来autowiring, 默认注入是必须的。(这个注解会为我们注入一个定义好的Bean)

@Qualifier():此注解是和@Autowired一起使用的。使用此注解可以让你对注入的过程有更多的控制,用@Qulifier指定要绑定的bean的名称。当一个type有多个bean时,使用@Autowired的时候需要配合上@Qulifier才能正常。

@Scope()

@bean

@Configuration: 指定Spring扫描注解的package。如果没有指定包,那么默认会扫描此配置类所在的package。

Stereotype注解:(Component-Controller-Service-Repository)

@Component: 此注解使用在class上来声明一个Spring组件(Bean), 将其加入到应用上下文中。

@Controller: 此注解使用在class上声明此类是一个Spring controller,是@Component注解的一种具体形式。

@Service: 此注解使用在class上,声明此类是一个服务类,执行业务逻辑、计算、调用内部api等。是@Component注解的一种具体形式。

@Repository:此类使用在class上声明此类用于访问数据库,一般作为DAO的角色。

此注解有自动翻译的特性,例如:当此种component抛出了一个异常,那么会有一个handler来处理此异常,无需使用try-catch块。

Spring MVC 和 REST:

@Controller

@RequestMapping: 可以用在class和method上,用来映射web请求到某一个handler类或者handler方法上。当此注解用在Class上时,就创造了一个基础url,其所有的方法上的@RequestMapping都是在此url之上的。可以使用其method属性来限制请求匹配的http method。

后面我们引入了一系列的变种:

@GetMapping

@PostMapping

@PutMapping

@PatchMapping

@DeleteMapping

@PathVariable:

RequestMapping("/users/{uid}")

public String execute(@PathVariable("uid") String uid)

{

}

一大堆用在Http handler方法的参数上面相关的annotation:

@requestAtribute

@requestBody

@RequestHeader

@RequestParam

@RequestBody

@RequestStatus

3.springboot项目中注解使用实例

登录接口代码如下:

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Login {
}

注解使用比较简单,注解一般都有对应的说明。注解本身不含任何逻辑,但可以简化代码的开发,这也是spring一组的特性之一。开发时使用注解,就不用再写复杂的配置文件,大大减轻了工作量。

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

spring中的annotation简介 的相关文章

随机推荐

  • 云服务的三种模式

    1 laaS 基础设施即服务 laaS xff08 Infrastructure as a Service xff09 即基础设施即服务 提供给消费者的服务是对所有计算基础设施的利用 xff0c 包括处理CPU 内存 存储 网络和其他基本的
  • Caused by: java.lang.IllegalStateException: No application config found or it‘s not a valid config!

    复习springboot时遇到的问题 xff0c 找不到application properties 配置文件 xff0c 很奇怪 xff0c 明明放到resource下面了 xff0c 就是编译不进去 xff0c 运行后target根本没
  • Win系统远程桌面连接教程/查询用户名和密码

    要连接的电脑命名为A 被连接的电脑命名为B B电脑 xff1a 右键电脑属性 点击远程设置 点击允许远程连接此电脑 win 43 r打开cmd输入ipconfig查询ip地址 不知道用户名和密码的 输入net user查询用户名 xff0c
  • Tomcat 9.0安装及配置

    目录 一 获取安装包 二 Tomcat9 0 67 环境配置 三 验证 四 补充 一 获取安装包 官网下载https tomcat apache org 解压至英文文件夹下 xff08 路径中需要全英文 xff09 xff0c 记住路径 百
  • 1.Matlab图像的读取和显示

    在开始之前 xff0c 我们需要在脚本里创建个 m文件 xff0c 然后运行 每次运行时要更换至脚本的路径 clc clear closeall 在一个文件的开头经常会看到 那么他们的作用是什么呢 xff1f clc span class
  • 分享一个word转pdf的工具类Aspose[java]

    项目中使用到office文件的格式转换pdf阅读 xff0c 但是没有一款好用的转换工具 由于本人是mac系统 xff0c openoffice也没法使用 xff0c 前期使用itext转换一直中文乱码 xff0c 也没有解决这个问题 xf
  • Window Sever 2012 密码忘记,修改密码的方法

    在VMWare中安装Window Server 2012忘记密码后如何进行破译修复 xff1f 方法如下 xff1a 进入BIOS 设置界面 xff0c 华硕是按f2 xff08 可以查询一下自己相应电脑进入BIOS界面的按键 xff09
  • UNIX环境高级编程笔记

    UNIX环境编程 一 UNIX基础知识1 1 Linux 主要特性1 2 Linux 内核1 3 Linux 目录结构1 4 登录1 登录名2 shell 1 5 输入和输出1 文件描述符2 标准输入 标准输出 标准错误3 不带缓冲的IO4
  • 实现map有序输出

    我们知道golang里的map是无序的 xff0c 不像python里的字典还可以对键值对顺序反序啥的 所以我们下面手动实现map的有序输出 xff0c 其实原理很简单 xff01 package main import 34 fmt 34
  • 三大框架-Spring

    一 概述 spring框架是以一个分层架构 有七个定义良好的模块组成 Spring模块构建在核心容器之上 核心容器定义了创建 配置和管理bean方式 1 Spring Core 核心容器 提供Spring的基本功能 2 SPring Con
  • Java——泛型和Io流

    目录 1 泛型 2 File对象 3 IO流 4 字节输入和输出流 5 缓存流 6 对象流 1泛型 1 1什么是泛型 1 泛型就是限制我们得数据类型 2 为什么使用泛型 我们原来在定义集合时 xff0c 是如下得定义方式 xff1a Lis
  • Spring框架入门学习笔记

    Spring概述 目录 Spring概述 IOC容器 概念 底层原理 Spring提供IOC容器实现两种方式 基于xml方式实现属性注入和对象创建 属性注入 xml注入集合属性 Spring中的bean类型 bean的作用域 bean的生命
  • &和&&的区别?

    amp 和 amp amp 都是Java中的逻辑运算符 xff0c 用于对两个布尔值进行逻辑运算 xff0c 但它们有着不同的特点和使用场景 xff0c 具体区别如下 xff1a 1 运算规则 amp 是按位与运算符 xff0c 它会对两个
  • MAC电脑GOland2022.2.1版本DEBUG问题

    在使用goland使用debug调试代码出现 API server listening at 127 0 0 1 56871 could not launch process debugserver or lldb server not f
  • Maven连接数据库

    1 创建一个maven项目 2 在resources中创建db properties配置文件和log4j properties日志的配置文件 db username 61 root db password 61 root db url 61
  • 关于vs2019网络问题解决方案

    首先将IPV4 的DNS设置为默认的114 114 114 114 xff0c 备用DNS为8 8 8 8 xff0c 若没有用 xff0c 则不勾选IPV6 xff0c 亲测有效 这个问题曾经也困扰了我好几个月 xff0c 甚至都想换掉v
  • Spring Boot启动器

    文章目录 Spring Boot启动器简介自定义springboot启动器命名规约自定义starter步骤1 创建一个Spring boot项目2 导入pom3 编写配置类4 在resources META INF目录下新建spring f
  • web开发入门

    在vscode中输入英文 xff0c 按tab键 xff0c 叩可显示html5的框架 搭建好框架之后 xff0c 再进行局部设计即可制作一张简易静态网页
  • springboot学习笔记

    http t csdn cn aLaeJ
  • spring中的annotation简介

    1 注解介绍 注解 xff0c 是一种用来描述数据的数据 比如说 64 override表示我们重载父类函数 如果我们不用这个注解 xff0c 程序也能执行 xff0c 但是我们加了这个注解代表我告诉编译器这个方法是一个重写的方法 如果父类