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

spring框架注解

3.Spring有哪些常用注解呢?
Spring常用注解

Web:

@Controller:组合注解(组合了@Component注解),应用在MVC层(控制层)。

@RestController:该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

@RequestMapping:用于映射Web请求,包括访问路径和参数。如果是Restful风格接口,还可以根据请求类型使用不同的注解:

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

@ResponseBody:支持将返回值放在response内,而不是一个页面,通常用户返回json数据。

@RequestBody:允许request的参数在request体中,而不是在直接连接在地址后面。

@PathVariable:用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为Restful的接口实现方法。

@RestController:该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。

容器:

@Component:表示一个带注释的类是一个“组件”,成为Spring管理的Bean。当使用基于注解的配置和类路径扫描时,这些类被视为自动检测的候选对象。同时@Component还是一个元注解。

@Service:组合注解(组合了@Component注解),应用在service层(业务逻辑层)。

@Repository:组合注解(组合了@Component注解),应用在dao层(数据访问层)。

@Autowired:Spring提供的工具(由Spring的依赖注入工具(BeanPostProcessor、BeanFactoryPostProcessor)自动注入)。

@Qualifier:该注解通常跟 @Autowired 一起使用,当想对注入的过程做更多的控制,@Qualifier 可帮助配置,比如两个以上相同类型的 Bean 时 Spring 无法抉择,用到此注解

@Configuration:声明当前类是一个配置类(相当于一个Spring配置的xml文件)

@Value:可用在字段,构造器参数跟方法参数,指定一个默认值,支持 #{} 跟 ${} 两个方式。一般将 SpringbBoot 中的 application.properties 配置的属性值赋值给变量。

@Bean:注解在方法上,声明当前方法的返回值为一个Bean。返回的Bean对应的类中可以定义init()方法和destroy()方法,然后在@Bean(initMethod=”init”,destroyMethod=”destroy”)定义,在构造之后执行init,在销毁之前执行destroy。

@Scope:定义我们采用什么模式去创建Bean(方法上,得有@Bean) 其设置类型包括:Singleton 、Prototype、Request 、 Session、GlobalSession。

实体类和接口

@Component
@Aspect
public class Loger {@Before("execution(* *..BookServiceimpl.*(..))")public void check(){ System.out.println("前置通知/增强:执行系统的权限验证"); }@AfterReturning("execution(* *..BookServiceimpl.*(..))")public void logPrint(){ System.out.println("后置通知/增强:执行日志的打印"); }@AfterThrowing("execution(* *..BookServiceimpl.*(..))")public void exeption(){ System.out.println("异常通知/增强:做出异常的通知"); }@After("execution(* *..BookServiceimpl.*(..))")public void distory(){ System.out.println("最终通知/增强:资源的释放"); }

public interface BookService {void add();void del();void update();void find();
@Component
public class BookServiceimpl implements BookService {@Overridepublic void add() {System.out.println("添加");}@Overridepublic void del() {System.out.println("删除");}@Overridepublic void update() {System.out.println("修改");}@Overridepublic void find() {System.out.println("查询");}
}

spring。xml代码

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><context:component-scan base-package="com.lei"/><aop:aspectj-autoproxy/></beans>

测试类

   @Testpublic void test01(){ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");BookService bookService=context.getBean(BookService.class);bookService.add();bookService.del();bookService.find();bookService.update();}

相关文章:

spring框架注解

3.Spring有哪些常用注解呢&#xff1f; Spring常用注解 Web: Controller&#xff1a;组合注解&#xff08;组合了Component注解&#xff09;&#xff0c;应用在MVC层&#xff08;控制层&#xff09;。 RestController&#xff1a;该注解为一个组合注解&#xff0c;相当于Con…...

前端如何处理文本溢出

前言 在现代网页设计中&#xff0c;文本是网页中最重要的内容之一。然而&#xff0c;当文本超出其容器的大小时&#xff0c;会发生文本溢出的问题。文本溢出不仅会影响网页的视觉效果&#xff0c;还会影响网页的可读性和可用性。在前端开发中&#xff0c;解决文本溢出的问题是…...

vue elementUI select下拉框设置默认值(赋值)失败

vue elementUI select下拉框设置默认值 要为select下拉框设定默认值&#xff0c;只需要把 v-model 绑定的值和你想要选中 option 的 value 值设置一样即可。 下面上代码&#xff1a; html部分代码&#xff1a; <el-select v-model"valuetype" change"ch…...

TensorRT创建Engine并推理engine

1. 验证集数据集 Class Images Labels P R mAP.5 mAP.5:.95: 100%|██████████| 84/all 1000 28423 0.451 0.374 0.376 0.209pedestrians 1000 17833 0.737 0.855 0.88 …...

生成式人工智能所面临的问题有哪些?

在生成式人工智能中工作需要混合技术、创造性和协作技能。通过发展这些技能&#xff0c;您将能够在这个令人兴奋且快速发展的领域应对具有挑战性的问题。 生成式人工智能是指一类机器学习技术&#xff0c;旨在生成与训练数据相似但不完全相同的新数据。 换句话说&#xff0c;…...

代码随想录算法训练营第四十三天 | 1049. 最后一块石头的重量 II、494. 目标和、474. 一和零

打卡第43天&#xff0c;01背包应用。 今日任务 1049.最后一块石头的重量 II494.目标和474.一和零 1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0…...

PostCSS 让js可以处理css

GitHub 中文readmie PostCSS 中文网&#xff08;建设中&#xff09; PostCSS 不是样式预处理器 是 CSS 语法转换的工具&#xff0c;但不严格遵循css规范&#xff0c;只要符合css语法规则就可以被处理。这也让提前实现新提案成为可能。 使用 webpack 中使用 postcss-loader …...

【C语言进阶:自定义类型详解】位段

本节重点内容&#xff1a; 什么是位段位段的内存分配位段的跨平台问题位段的应用⚡什么是位段 位段的声明和结构是非常类似的&#xff0c;但是有两个不同&#xff1a; 位段的成员必须是 int、unsigned int 或signed int 。位段的成员名后边有一个冒号和一个数字。 struct A…...

十三、RNN循环神经网络实战

因为我本人主要课题方向是处理图像的&#xff0c;RNN是基本的序列处理模型&#xff0c;主要应用于自然语言处理&#xff0c;故这里就简单的学习一下&#xff0c;了解为主 一、问题引入 已知以前的天气数据信息&#xff0c;进行预测当天(4-9)是否下雨 日期温度气压是否下雨4-…...

五子棋透明棋盘界面设计(C语言)

五子棋透明棋盘设计&#xff0c;漂亮的界面制作。程序设置双人对奕&#xff0c;人机模式&#xff0c;对战演示三种模式。设置悔棋&#xff0c;记录功能&#xff0c;有禁手设置。另有复盘功能设置。 本文主要介绍透明的玻璃板那样的五子棋棋盘的制作。作为界面设计&#xff0c;…...

Redis第六讲 Redis之List底层数据结构实现

List数据结构 List是一个有序(按加入的时序排序)的数据结构,Redis采用quicklist(双端链表) 和 ziplist 作为List的底层实现。可以通过设置每个ziplist的最大容量,quicklist的数据压缩范围,提升数据存取效率 list-max-ziplist-size -2 // 单个ziplist节点最大能存储 8kb ,…...

电子学会2023年3月青少年软件编程python等级考试试卷(四级)真题,含答案解析

目录 一、单选题(共25题,共50分) 二、判断题(共10题,共20分) 三、编程题(共3题,共30分)...

【MATLAB】一篇文章带你了解beatxbx工具箱使用

目录 一篇文章带你了解beatxbx工具箱使用 一篇文章带你了解beatxbx工具箱使用 clc;clear; tic; % step1 初始化 % 个体数量 NIND = 35; % 最大遗传代数 MAXGEN = 180; % 变量的维数 NVAR = 2; % 变量的二进制位数 % 上下界 bounds=[-10 10-10 10]; precision=0.0001; %运算精度…...

【LinuxC Sqlite数据库小项目】基于Sqlite的打卡系统------适合初学者练手的小项目

最近小哥老是想浪&#xff0c;不想好好学习&#xff0c;这不行啊&#xff0c;得想点办法&#xff0c;多少做点努力&#xff0c;于是就自己给自己写了个打卡程序&#xff1b; 该程序基于Sqlite数据库&#xff0c;实现一个简单的打卡功能&#xff0c;该函数具有自动初始化的功能…...

在掌握C#基础上再学习C语言

C#和C语言虽然名字相似&#xff0c;但它们在很多方面都有很大的区别。 首先&#xff0c;C#是一种面向对象的语言&#xff0c;而C语言是过程化的语言。这意味着C#具有更丰富的语言特性&#xff0c;如类、接口、继承和多态性等&#xff0c;而C语言则更侧重于直接对计算机硬件进行…...

HTML5 <body> 标签

HTML <body> 标签 实例 一个简单的 HTML 文档&#xff0c;包含尽可能少的必需的标签&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>文档标题</title> </head><body> 文档内容…...

(链表)反转链表

文章目录前言&#xff1a;问题描述&#xff1a;解题思路&#xff1a;代码实现&#xff1a;总结&#xff1a;前言&#xff1a; 此篇是针对链表的经典练习。 问题描述&#xff1a; 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1…...

deb文件如何安装到iphone方法分享

Cydia或同类APT管理软件在线安装 Cydia或同类APT管理软件在线安装,这个是最佳的安装方式,因为通常无需考虑依赖关系,但缺点是对网络的要求比较高;命令行中以dpkg-iXXX.deb的形式安装,好处是可以以通配符一次性安装多个deb,而且也可以直接看到脚本的运行状况和安装成功/失…...

mongodb和mysql双写数据一致性问题

文章目录 我们是如何用MongoDB的如何保证双写一致性?先写数据库,再写MongoDB先写MongoDB,再写数据库用户修改操作如何保存数据如何清理新增的垃圾数据定时删除随机删除我们是如何用MongoDB的 MongoDB是一个高可用、分布式的文档数据库,用于大容量数据存储。文档存储一般用…...

Databend 开源周报第 88 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.com 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Support Eager…...

《从GIS前端到AIGC大厂:WebGIS、WebGL、Three.js技术栈的底层能力拆解与岗位适配指南》

前端GIS技术栈&#xff1a;从图形学底层到AIGC营销增长的全链路实战指南 &#xff08;附大厂AI前端JD精准匹配与可落地项目&#xff09; &#x1f516; 目录理论篇&#xff1a;GIS中必学的图形学、WebGL、Three.js核心内容&#xff08;含GIS实战细节&#xff09; 1.1 计算机图形…...

【嵌入式 AI 实战第 9 期】环境感知(一)气体传感器阵列与数据采集(附完整 C 语言驱动)

一、前言在物联网与人工智能快速发展的今天&#xff0c;环境感知能力已成为智能设备的核心功能之一。气体传感器作为环境感知的 "嗅觉器官"&#xff0c;广泛应用于智能家居、工业安全、农业生产、医疗诊断等领域。传统的单一气体传感器只能检测特定类型的气体&#x…...

i.MX8M Plus开发板OV5640摄像头驱动配置与调试全攻略

1. 项目概述&#xff1a;为i.MX8M Plus开发板适配OV5640摄像头在嵌入式视觉项目里&#xff0c;无论是做安防监控、工业质检的“眼睛”&#xff0c;还是给机器人装上感知环境的“视觉”&#xff0c;第一步也是最基础的一步&#xff0c;就是把摄像头给跑起来。最近我在一个基于NX…...

TaotokenCLI工具一键配置开发环境与团队协作

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 TaotokenCLI工具一键配置开发环境与团队协作 在团队协作开发中&#xff0c;统一大模型API的接入配置是一个常见痛点。每个成员手动…...

Claude Code Ultraplan 远程多代理规划全解析:AI Agent、CCR远程容器、异步规划、状态机、计划传送与企业级自动化治理

一、先说结论&#xff1a;Ultraplan 到底解决了什么痛点&#xff1f;Ultraplan 可以理解为一种“远程规划模式”&#xff1a;用户在本地终端发起一个复杂任务&#xff0c;系统把规划阶段卸载到远程 CCR 容器中执行。本地终端不再被长时间占住&#xff0c;远程端可以使用更强模型…...

Cursor AI插件深度解析:从自动化脚本到智能编程工作流

1. 项目概述&#xff1a;一个为 Cursor 编辑器注入灵魂的 AI 增强插件如果你和我一样&#xff0c;日常开发重度依赖 Cursor 这款“AI 原生”编辑器&#xff0c;那你一定体验过它内置的 AI 对话和代码生成带来的效率提升。但用久了&#xff0c;你可能会发现一些痒点&#xff1a;…...

Real-is-Sim框架:动态数字孪生在机器人控制中的创新应用

1. Real-is-Sim框架概述&#xff1a;动态数字孪生的创新实践在机器人控制领域&#xff0c;仿真到现实的迁移&#xff08;sim-to-real&#xff09;一直是个棘手难题。传统方法往往面临"仿真太完美&#xff0c;现实太复杂"的困境——在虚拟环境中训练的策略&#xff0c…...

高效跨平台网盘直链解析工具:5步配置实战指南

高效跨平台网盘直链解析工具&#xff1a;5步配置实战指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

PyInstaller Extractor终极指南:5分钟学会提取可执行文件源码

PyInstaller Extractor终极指南&#xff1a;5分钟学会提取可执行文件源码 【免费下载链接】pyinstxtractor PyInstaller Extractor 项目地址: https://gitcode.com/gh_mirrors/py/pyinstxtractor 你是否曾经面对一个PyInstaller打包的可执行文件&#xff0c;想要查看其中…...

SoC与SoM技术解析:嵌入式开发的双刃剑与选型实战

1. 项目概述&#xff1a;当“系统”成为商品最近几年&#xff0c;无论是消费电子、工业控制还是物联网设备&#xff0c;一个明显的趋势是&#xff1a;越来越多的产品不再从零开始设计核心计算单元。取而代之的&#xff0c;是直接采用一颗高度集成的“片上系统”&#xff0c;或者…...