当前位置: 首页 > 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…...

OpCore-Simplify:开源系统硬件适配的技术突破与架构革新

OpCore-Simplify&#xff1a;开源系统硬件适配的技术突破与架构革新 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系统定制领域&#xff0c;硬…...

Pixel Epic实战案例:用AgentCPM-Report 3步生成逻辑严密深度研报

Pixel Epic实战案例&#xff1a;用AgentCPM-Report 3步生成逻辑严密深度研报 1. 引言&#xff1a;当研究报告遇上像素冒险 想象一下这样的场景&#xff1a;你需要完成一份关于新能源行业的深度研究报告&#xff0c;传统方式可能需要花费数周时间收集资料、分析数据、撰写内容…...

Qwen3-14B私有部署镜像Visio流程图智能生成:从文本描述到架构图

Qwen3-14B私有部署镜像Visio流程图智能生成&#xff1a;从文本描述到架构图 1. 引言&#xff1a;技术文档绘图的痛点与解决方案 技术文档编写过程中&#xff0c;最耗时费力的环节之一就是绘制系统架构图和流程图。传统方式需要手动在Visio中拖拽图形、调整布局、添加连接线&a…...

deepseek硬件电路实战:构建pA级电流测量系统的核心技术与工程实践

1. 从理论到实践&#xff1a;pA级电流测量的核心挑战 测量皮安级电流就像在暴风雨中听清一根针落地的声音。我十年前第一次尝试做这种高精度测量时&#xff0c;连示波器上全是噪声信号&#xff0c;根本分不清哪些是真实信号。pA级测量最核心的挑战在于&#xff0c;我们要测量的…...

单机变联机:Nucleus Co-Op如何让你的电脑实现4人同屏游戏

单机变联机&#xff1a;Nucleus Co-Op如何让你的电脑实现4人同屏游戏 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 你是否曾想过&#xff0c;用一…...

像素史诗惊艳效果展示:10份高质量研报生成过程与成品对比

像素史诗惊艳效果展示&#xff1a;10份高质量研报生成过程与成品对比 1. 像素史诗&#xff1a;当AI研究遇上像素艺术 在数字内容创作领域&#xff0c;一款名为像素史诗(Pixel Epic)的工具正在重新定义研究报告的生成方式。这款基于AgentCPM-Report大模型构建的智能终端&#…...

基于python宠物医院药品管理系统的设计与实现

目录同行可拿货,招校园代理 ,本人源头供货商功能模块设计技术实现要点扩展功能建议项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 功能模块设计 药品信息管理模块 实现药品基础信息的…...

食品批发厂家口碑推荐榜

在食品批发行业&#xff0c;选择一家口碑良好的厂家至关重要。优质的食品批发厂家不仅能提供高品质的产品&#xff0c;还能保障稳定的供应和良好的售后服务。今天&#xff0c;我们就来为大家推荐一些口碑出众的食品批发厂家&#xff0c;其中惠州市佳德旺食品有限公司表现尤为突…...

韩国AI芯片企4亿融资,挑战英伟达?

3月31日消息&#xff0c;韩国AI芯片初创企业Rebellions完成4亿美元融资&#xff0c;总融资达8.5亿美元&#xff0c;估值约23.4亿美元&#xff0c;正筹备上市。还发布两款产品&#xff0c;欲挑战英伟达。巨额融资与上市筹备近日&#xff0c;Rebellions宣布完成4亿美元融资&#…...

新手入门指南:在快马平台用万文通思路打造你的第一个文本转换网页

今天想和大家分享一个特别适合编程新手的实践项目——用万文通思路在InsCode(快马)平台快速搭建文本转换网页。这个项目完全不需要复杂的环境配置&#xff0c;打开浏览器就能完成&#xff0c;特别适合想体验完整开发流程的初学者。 项目核心功能设计 这个网页的核心功能非常简单…...