SPRINGBOOT的常用注解

2023-11-06


Spring是用来管理业务层的框架(通过集成持久层框架也可以用来管理持久层),主要的两大功能是控制反转面向切面编程,主要目的是实现程序的解耦

SpringMVC是用来管理控制层的框架,主要是实现和WEB的交互。注意不要直接在控制层编写业务代码,至少就目前我接触到的项目而言,控制层方法中一般都只有一行代码,那就是业务层的方法调用。

SpringBoot可以说是对Spring和SpringMVC的综合,并提供了一种更加简单直接的使用方式,主要优势是“习惯优于配置”,省去了Spring中繁琐的配置;并且提供了起步依赖,解决了Spring中依赖JAR包冲突的问题。SpringBoot中使用的基本上都是Spring和MVC中的注解,但是它另外有自己专属的yml文件配置方式。


生成类对象

用在类上,用于生成当前类对象并把它存入ioc容器中。

@Component,通用的

@Controller,一般用在控制层

@Service,一般用在业务逻辑层 

@Repository:一般用在持久层

这些注解有一个属性value,用于指定唯一标识id。如果不写,默认就是当前类名(首字母改小写)

这里有个地方要注意,这四个注解不需要在接口或者抽象类上使用,而是在对应实现类或子类上使用。根据多态原理,我实际上需要的就是这些实现类的对象。


注入对象

当需要在某个类中调用其它类的方法,就需要其他类的对象,不必自己去new,这样耦合性太高。使用依赖注入即可。

用在定义的类属性上,通常用于注入对象。

@AutoWired,自动根据类型进行注入,如果ioc容器中有唯一的bean对象类型和要注入的变量匹配,则可以注入成功;

@Qualifier(value = “指定的id”),如果容器中有多个bean对象类型和要注入的变量匹配(比如调用接口时该接口有多个实现类),
则需要再次根据id匹配来注入,如果有指定的id,则可注入成功。该注解需要和@AutoWired一起使用。

@Resouce(name = “指定的id”),直接根据id名来注入。可以单独使用。


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

SPRINGBOOT的常用注解 的相关文章

  • rostopic echo --noarr查看激光雷达数据详细信息(如frame_id)

    用rostopic echo 激光雷达话题名查看激光雷达返回的数据 xff0c 除了数字什么也显示不出来 想要查看激光雷达数据的frame id等信息 xff0c 加上 noarr参数即可 xff0c 排除话题数据中的数组信息 如图二所示
  • Spring boot 引入Spring Security后iframe或者frame所引用的页无法显示的问题

    最近在调整框架 xff0c 决定使用Spring Boot来简化框架 xff0c 引入Spring Security主要目的是做用户登录认证 xff0c 附带得到Spring Security各种特性 xff0c 包括主题中的问题 由于原项
  • FLASK框架应用实例

    一 项目简介 Flask是Python编写的轻量级Web开发框架 因其良好的可扩展性 意味着 你可以写出你自己随心所欲的代码 其使用jinja模板引擎和Werkzeug WSGI 套件 在安全性方面效果明显 详细文档收藏地址 https d
  • selenium之 定位以及切换frame(iframe)

    更多关于python selenium的文章 请关注我的专栏 Python Selenium自动化测试详解 总有人看不明白 以防万一 先在开头大写加粗说明一下 frameset不用切 frame需层层切 很多人在用selenium定位页面元
  • 日志框架:slf4j、log4j和logback的基本使用

    slf4j是日志框架的标准 即通用接口 实现了日志框架一些通用的api 而log4j和logback是众多日志框架中的几种 log4j和logback可以单独的使用 也可以绑定slf4j一起使用 1 单独使用时分别调用框架自己的方法来输出日
  • iOS UIView 旋转后获取框架

    我正在尝试获取我的尺寸UIView方向改变后 在我的视图控制器中我实现didRotateFromInterfaceOrientation 并打电话setNeedsLayout 在我看来 在我看来layoutSubviews方法中 它尝试根据
  • 如何在 Java 中解析和验证 WebSocket 帧?

    我用Java编写了一个WebSocket帧解码器 private byte decodeFrame byte rawIn int maskIndex 2 byte maskBytes new byte 4 if rawIn 1 byte 1
  • 更改 UIView 框架

    我已经设置了一个UIView in my storyboard并使其成为一个出口 property nonatomic weak IBOutlet UIView testView In the void viewDidLoad方法 我想像这
  • 在 tkinter 中的两个框架之间切换?

    我已经构建了我的前几个脚本 上面有一个漂亮的小 GUI 正如教程所示 但它们都没有解决如何处理更复杂的程序 如果您有一个带有 开始菜单 的东西 用于您的打开屏幕 并且根据用户选择 您移动到程序的不同部分并适当地重绘屏幕 那么执行此操作的优雅
  • 是否可以阻止您的网站在另一个域的框架集和 IFrame 内运行?

    最近我们遇到了一个问题 其他网站在一个框架集中运行我们的电子商务网站 而我们的网站 附加了违规者附属 ID 是单个全宽框架中的唯一内容 所以本质上它看起来和感觉就像我们的网站 其 URL 位于顶部 我们可以切断他们的会员 ID 这会让他们这
  • 在 XAML 中显示窗口内的页面

    我的窗口中有一个选项卡控件 在每个选项卡项内我想要有一个不同的页面 我可以通过在 TabItem 内创建一个 Frame 并在后面的代码中使用来实现此目的 例如 frame1 Content new Pages MyPage 我怎样才能在
  • 在 WPF Frame 控件中关闭导航页面声音

    我在 WPF 窗口中有一个 Frame 元素 并且应用程序中的所有内容都是使用 Frame Navigate 加载的 但是 当导航到新页面时 默认会播放该声音 它与 Internet Explorer 中播放的声音相同 有什么方法可以从应用
  • 上移一帧,调试R环境

    在调试函数时 我想移动到父框架并查看那里的一些变量 我该怎么做呢 这是一个示例 f lt function x lt 1 g x 1 g lt function z y z 2 return y 然后我使用调试这两个函数debug g an
  • 如何从框架中获取用户输入并保存到txt文件中?

    我的程序运行如下 我有一个带有添加按钮 保存按钮和选项卡控件的表单 当单击表单中的添加按钮时 选项卡控件将添加更多选项卡项目 tabitem 基本上是从 myframe 添加的 其中包括用户在 TEdit 中键入的值 我想要实现的是当我点击
  • 将预览帧转换为位图

    我知道这个主题已经在黑板上出现过很多次了 但无论如何我都无法让它发挥作用 我想将预览中的视图帧保存为 jpeg 文件 它看起来或多或少 代码被简化 没有额外的逻辑 异常等 像这样 public void onPreviewFrame byt
  • sizeWithFont: constrainedToSize: with UITextView (有时) 没有创建正确的高度 - iPhone

    我使用以下代码来确定所需的高度UITextView正在添加到UITableViewCell 并确定每个的高度UITableViewCell 这在 90 的情况下有效 但某些传入数据 始终是相同的传入数据 会出现不足 如果我允许在UIText
  • Android 中如何获取帧

    实际上 我需要从视频中获取所有帧 但在使用 Mediametadataretriever 缩略图 时间戳获取帧时 我经常重复获取第一帧 然后获取特定时间帧 我通过更改所有 GetFrameAtTime options 尝试了很多修复 但仍然
  • 当 UIView 通过自动布局调整大小时,会调用什么方法?

    我有一个图像视图 我通过在子类中覆盖以下内容来实现圆角 void setFrame CGRect frame super setFrame frame self layout setCornerRadius frame size width
  • 在iOS中设置框架的原点

    我正在尝试以编程方式设置框架的原点 Method1 button frame origin y 100 方法二 CGRect frame button frame frame origin y 100 我尝试了方法 1 但它不起作用 显示错
  • iOS:将观察者添加到 UIView 的frame.origin.y?

    我正在尝试监视 UIView 框架原点的变化值并对其做出反应 我的代码 cell bottomView addObserver self forKeyPath frame origin options NSKeyValueObserving

随机推荐

  • Docker 学习笔记之基础命令

    1 Docker search image name搜索镜像 2 Docker pull image name下载镜像 3 Docker images 查看镜像 4 Docker run 启动容器 5 Docker ps 查看容器 6 Do
  • 【KEIL-MDK】系列——如何使用PC-Lint代码检查工具

    系列文章目录 01 KEIL MDK 系列 主题配色 文章目录 前言 一 PC Lint 是什么 二 在 KEIL MDK 中集成 PC Lint 工具 1 安装 PC Lint 工具 2 打开 KEIL MDK 进行简单设置 三 使用 P
  • 伯努利模型的极大似然估计和贝叶斯估计

    定义随机变量A为一次伯努利试验的结果 A A A的取值为 0 1 概率分布为 P A P A
  • @PostConstruct注解说明

    PostConstruct 是在Java中使用的注解 用于标识一个方法在一个bean被实例化和初始化之后 但在其投入使用之前应该被执行 它通常在Spring框架应用中使用 当一个bean在Spring应用上下文中被创建时 容器会通过调用其构
  • mssql 远程无法连接mysql_如何开启SqlServer 远程访问

    当Microsoft Sqlserver 2012 安装好后 接下的的工作需要配置Sqlserver数据库允许远程访问 只有配置了Sqlserver远程访问 其他ip客户端才能访问 配置sqlserver远程访问大致分为三步 即配置SQL
  • Android开发中如何添加自定义开机广播

    Android开发中如何添加自定义开机广播 在Android开发中 我们经常需要在设备开机完成后执行一些特定的操作 比如初始化应用程序或者启动服务 为了实现这样的需求 我们可以通过添加自定义开机广播来实现 首先 我们需要创建一个广播接收器类
  • 修改windows的默认编码

    修改windows的默认编码 环境 win10 问题背景 使用7z解压缩一个 zip文件之后 发现文件包内的文件名是乱码 但是使用同版本的7z在另一个win10系统下解压缩 没有这个问题 问题原因 是win10默认编码的问题 由于这次的电脑
  • 【深度学习】基于华为MindSpore和pytorch的卷积神经网络LeNet5实现MNIST手写识别

    1 实验内容简介 1 1 实验目的 1 熟练掌握卷积 池化概念 2 熟练掌握卷积神经网络的基本原理 3 熟练掌握各种卷积神经网络框架单元 4 熟练掌握经典卷积神经网络模型 1 2 实验内容及要求 请基于pytorch和mindspore平台
  • csdn积分怎么查看

    csdn积分怎么查看 博客积分查询 https mp csdn net mp blog analysis article all 下载积分查询 https mp csdn net mp download analysis download
  • js 与 jsc 文件不能混用

    不然会出现莫名bug 转载于 https www cnblogs com guomengkai p 11511410 html
  • WORD软件安装

    WORD插件Aurora安装及下载 准备软件下载 正式安装 常见问题 准备软件下载 安装包下载地址 链接 https pan baidu com s 1gsTSDL0KPdeXdiucE3HGlA 提取码 vbi5 正式安装 按照流程安装即
  • 视频恢复软件哪个好用?推荐这几款恢复率高的软件

    如果你意外删除了电脑保存的视频文件 无论是单击回收站 还原 还是通过电脑系统备份 还原 它都无法恢复 如何解决这个问题 此时 你需要寻求文件删除恢复软件的帮助 推荐下面这几款恢复率高的视频恢复软件 如何操作呢 你可以看看下面的详细解说 第一
  • MongoDB分片

    MongoDB分片 集群搭建 环境准备 mongo1 127 0 0 1 mongo2 127 0 0 1 mongo3 127 0 0 1 config1 端口 27018 config2 端口 27028 config3 端口 2703
  • 如何实现动态代理

    1 动态代理和静态代理的区别 静态代理 在编译之前就已经确定好代理对象 代理方法等等 动态代理 在编译后才明确代理对象以及代理方法等等 2 JDK代理原理 使用JDK动态代理方法 我们需要代理类和被代理类同时继承同一个接口才能进行增强 3
  • canvas鼠标在屏幕上的互动效果实现

    1 首先我们需要整屏画布 你也可以随机设置 2 想要鼠标经过的时候有大小圆圈跟着鼠标动 故需要创建一个类来装圆的属性 随机的圆唯一的标识 id我这里用index 坐标 x y 半径r 颜色color 因为要很多圆需要一个数组来装 上面变量中
  • 从零开始,手把手教你实现一个高效的OA会议系统

    目录 前言 我将手把手教大家做一个会议系统 这个系统大概有8次文章 祝大家学的快乐 项目思路 将从以下方面去进行更新 1 项目简介 2 项目需要的开发文档 数据库建表 会议OA需求文档 会议OA需求规格说明书 OA会议系统数据库表结构 1
  • 【Fortran】Fortran中Open, Read 和 Write的用法

    1 write string write unit FMT string write unit 6 FMT string 以上等价 6是默认输出位置 即屏幕 2 print string Print只能对屏幕输出 3 integer kin
  • 关于show arp表,显示Incomplete问题

    最近出现一个问题 在核心交换机上查看交换机的ARP表的时候 很多ARP表项目会显示如信息 Internet 172 21 6 1 0 Incomplete ARPA 这表示没有学习到IP地址的mac地址 找了很久 终于找到问题 写下来分享一
  • Microsoft SQL Server Management Studio附加数据库时出错。有关详细信息,请单击“消息”列中的超链接。

    附加数据库时出错 有关详细信息 请单击 消息 列中的超链接 导入别人的项目时导入mdf和ldf数据库文件时 附加数据库出错 这是由于文件夹的权限问题 详细解决办法如下图所示 我们编辑ldf和mdf文件的上级目录数据库文件夹 gt 数据库文件
  • SPRINGBOOT的常用注解

    Spring是用来管理业务层的框架 通过集成持久层框架也可以用来管理持久层 主要的两大功能是控制反转和面向切面编程 主要目的是实现程序的解耦 SpringMVC是用来管理控制层的框架 主要是实现和WEB的交互 注意不要直接在控制层编写业务代