spring boot 的常用注解

Autowired与 Resource的区别

1、Autowired与Resource都是要装配bean

Autowired是通过byType来注入 Resource是同通过byName来注入

一、Autowired

Autowired默认是按类型(type也就是参数化类型)装配(这个注解是属于spring的),默认情况下Autowired要求依赖对象必须存在,如果想要允许他空值也就是null 可以设置它的required属性为false 格式为:@Autowired(required=false),如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:

@Autowired` `()` `@Qualifier` `(` `"baseDao"` `)``private` `BaseDao baseDao;

二、Resource

@Resource(这个注解属于J2EE的),默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。用这个注解是因为不用写set方法,减少与spring的耦合

三、Value

@Value(“${}”):value的格式

value注解的作用是将我们配置文件的属性读出来

四、Builder

builder它的作用就是在你使用的地方生成一个构造器与this方法

this就是区分全局与形参 然后this就是选择比较远的那个也就是全局

五、有参构造与无参构造

  • 构造方法的使用是用类名 构造函数也是与类名相同

  • 也就是说构造就是跟类名相同的方法或者函数

  • 还有就是如果类中没有构造函数那么你的类自带一个无参构造

  • 构造函数不能有返回值g

  • 有参构造就是有参数也就是有值的构造方法或者构造函数

  • 无参构造就是没有参数也就是没有值的构造方法或者构造函数

六、启动类注解

@SpringBootApplication

启动类为什么叫这个名字就是因为 springboot框架后面加的是你的默认的配置类 application也就是程序的入口

启动类的8个注解就是为了扫描你的所有包就是所有的Bean就是容器 因为类默认有Bean

七、自动装配原理

byType(类型)通过类型来扫描bean

byName(名称) 通过名称来扫描bean

constructor(构造器)通过构造来扫描bean 包括构造函数与构造方法

基于注解的自动装配有三种

@Autowired @Resource @Value

springboot启动时,是依靠启动类的main方法来进行启动的,而main方法中执行的是SpringApplication.run()方法,而SpringApplication.run()方法中会创建spring的容器,并且刷新容器。而在刷新容器的时候就会去解析启动类,然后就会去解析启动类上的@SpringBootApplication注解,而这个注解是个复合注解,这个注解中有一个@EnableAutoConfiguration注解,这个注解就是开启自动配置,这个注解中又有@Import注解引入了一个AutoConfigurationImportSelector这个类,这个类会进过一些核心方法,然后去扫描我们所有jar包下的META-INF下的spring.factories文件,而从这个配置文件中取找key为EnableAutoConfiguration类的全路径的值下面的所有配置都加载,这些配置里面都是有条件注解的,然后这些条件注解会根据你当前的项目依赖的pom以及是否配置了符合这些条件注解的配置来进行装载的。

八 RequestMapping

1.1标注在方法上

1.用在方法上 表示在类的父路径下追加方法上注解中的地址将会访问到该方法

1.2 标注在类和方法上

用于类上 表示类中的所有请求的方法都是以该地址作为父路径

2 属性

2.1@RequestMapping的value必须设值, 是通过当前请求地址来匹配请求

2.2 value属性是一个字符串类型的数组,因此说明可以将多个请求映射到一个方法上 只需要给value来指定一个包含多个路径的数组

2.3method属性 是通过当前请求的请求方式来匹配请求

浏览器向服务器发送请求 请求方式有很多GET ,HEAD,POST,PUT,PATCH,DELETE,OPTIONS,TRACE

可以使用method属性来约束请求方式。

九 RestController和controller

1返回值不同

@RestController=@Controller+@ResponseBody

@ResponseBody是一个针对方法返回值进行处理的注解, 处理后的@RestController注解会将所有处理请求的方法默认解析为将方法返回值直接作为响应体内容返回 返回的数据通常是JSON或XML格式。

2用法不同

@RestController 注解主要有get、post、put、delete等 可以方便地处理输出和输入的JSON或XML数据,适用于前后端分离的架构。

@Controller则更多地与视图渲染和页面跳转相关,通过页面模板引擎将数据渲染成 HTML 页面返回给用户

十@Override

@Override是什么

他是一个伪代码 用于表示被标注的地方就是重写方法 只能用于标记方法 而且只在于编译期生效 不会保留在class文件中

还会检查该方法是否是重写方法。如果发现他的父类或者是引用的接口中没有该方法 会报编译错误

如果没有覆写(现在出现了继承的关系,那么就存在了子类和父类的联系,而在子类之中有可能定义和父类完全相同的方法或属性的名称,这个时候就称为覆写了。)或者实现超类(已经存在的类称为超类(superclass))的方法声明 ,或者不是覆写Object的public方法,那么编译就会报错。

为什么要用它

使用@Override注解主要有两个好处:

1)帮助自己检查是否正确的重写父类方法

2)明显的提示看代码的人,这是重写的方法

十一 什么是IOC容器

1.Ioc的一种实现方式,通过构造方法、setter方法或接口注入依赖对象。 2.使用Ioc就是把容器里的东西交给spring管理

十二Aop

Aop是一种java编程规范 是为了解耦合与代码重用

是面向切面编程

十三Tomcat

1.Tomcat就是java Servlet容器与web服务器Tomcat被广泛用于部署和运行Java Web应用程序。

2.Servlet是Java编写的服务器端程序,用于处理客户端请求并生成动态内容。

十四HTTP协议

HTTP(Hypertext Transfer Protocol)协议是一种用于在互联网上进行数据传输的协议

Http协议使用基于请求-响应模型的方式,客户端发送HTTP请求给服务器,服务器根据请求进行处理并返回相应的HTTP响应。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/841434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css 文本超过一行省略号显示、文本超过两行省略号显示

要使CSS文本在一行内显示,并在超过一行时显示省略号(...),可以使用以下CSS样式: .text-ellipsis {white-space: nowrap; /* 文本不换行 */overflow: hidden; /* 隐藏超出容器的内容 */text-overflow: el…

深度学习中图像增强类别和作用

1. 基本几何变换 旋转 (Rotation):随机旋转图像一定角度。 作用:使模型对物体方向的变化更具鲁棒性。平移 (Translation):沿水平方向或垂直方向平移图像。 作用:增强模型对位置变化的鲁棒性。翻转 (Flip):水平或垂直翻…

C语言基础(七)

C语言基础(七) constconst修饰变量const修饰指针 main函数传参GDB调试工具 const const修饰变量 const修饰变量:只读(不可写) const修饰指针 左数右指(const在*的哪一侧) 数 —— 数值不可修…

【前端每日基础】day21——js基础运算符

JavaScript 提供了丰富的运算符,用于执行各种操作,如算术运算、比较、逻辑运算等。以下是 JavaScript 中的主要运算符及其用法。其实运算符大体上各语言都大差不差,顶多是部分小细节会有不同,简单看看就好了。 算术运算符 加法 …

halcon C++ 图片中添加区域HRegion,循环读取HTuple

halcon C 图片中添加区域,循环读取HTuple HObject ho_ImageResult1; GenEmptyObj(&ho_ImageResult1); // 绘制区域到图片 PaintRegion(ho_Regions, ho_Image, &ho_ImageResult1, ((HTuple(255).Append(255)).Append(255)), "fill"); // 保存图片…

弱密码系统登录之后强制修改密码

在你登录的时候,获取到弱密码,然后将他存到vuex里面,在登录进去之后,index页面再去取,思路是这样的 一、vuex里面定义密码字段 我是直接在user.js里面写的 import { login, logout, getInfo } from /api/login impo…

【MySQL进阶之路 | 基础篇】存储过程

1. 存储过程概述 (1). 含义 : 存储过程就是一组经过预先编译的SQL语句的封装. (2). 执行过程 : 存储过程预先存储在MySQL服务器上,需要执行的时候,客户端只需要向服务器端发送调用存储过程的命令,服务器端就可以把预先存储好的这一系列SQL语…

推荐一款媒体影音嗅探神器—Chrome扩展插件(猫抓cat-catch)

目录 1.1、前言1.2、下载地址1.3、github Releases 版本说明1.4、安装步骤1.5、猫抓插件常规设置1.5.1、设置抓取文件的类型1.5.2、设置抓取文件的后缀名 1.1、前言 我们在日常上网的过程中,很多音频、视频网站下载资源都非常不方便,要么需要安装客户端&…

jvm的类加载

文章目录 概要加载类加载器分类双亲委派模型自定义加载器 验证准备解析初始化<cinit>与<init> 概要 jvm运行时的整体结构如下 一个Car类&#xff0c;类跟Car对象的转换过程如下&#xff1a; 加载后的class类信息存放于方法区&#xff1b;ClassLoader只负责clas…

5.25机器人基础-空间描述和变换1

参考资料&#xff1a;《机器人学导论》John.J.Craig 彻底搞懂“旋转矩阵/欧拉角/四元数”&#xff0c;让你体会三维旋转之美_欧拉角判断动作-CSDN博客 机器人操作的定义是指通过某种机构使零件和工具在空间运动。因此&#xff0c;对于坐标系的定义显得尤为重要&#xff0c;相…

Mysql搭建主从同步,docker方式(一主一从)

服务器&#xff1a;两台Centos9 用Docker搭建主从 使用Docker拉取MySQL镜像 确保两台服务器都安装好了docker 安装docker请查看&#xff1a;Centos安装docker 1.两台服务器都先拉取mysql镜像 docker pull mysql 2.我这里是在 /opt/docker/mysql 下创建mysql的文件夹用来存…

基于STM32实现智能水族箱控制系统

目录 引言环境准备智能水族箱控制系统基础代码示例&#xff1a;实现智能水族箱控制系统 水温传感器数据读取水泵与加热器控制水位传感器数据读取用户界面与显示应用场景&#xff1a;水族箱管理与环境控制问题解决方案与优化收尾与总结 1. 引言 本教程将详细介绍如何在STM32嵌…

网络布线与数制转换

信号与传输介质 信号概述 什么是信号 信息 人对现实世界事物存在方式或运动状态的某种认识 数据 用于描述事物的某些属性的具体量值 信号 信息传递的媒介 例如&#xff0c;描述某一件物体&#xff0c;它的长、宽、高、质地、颜色、气味等就是用以形容该物体的数据。通…

深度学习——自己的训练集——图像分类(CNN)

图像分类 1.导入必要的库2.指定图像和标签文件夹路径3.获取文件夹内的所有图像文件名4.获取classes.txt文件中的所有标签5.初始化一个字典来存储图片名和对应的标签6.遍历每个图片名的.txt文件7.随机选择一张图片进行展示8.构建图像的完整路径9.加载图像10.检查图像是否为空 随…

网络安全从入门到精通(特别篇I):应急响应之不同平台后门排查思路

Windows-后门-常规&权限维持&内存马 Linux-后门-常规&权限维持&Rootkit&内存马 Windows实验 1、常规MSF后门-分析检测 2、权限维持后门-分析检测 3、Web程序内存马-分析检测 常见工具集合: https://mp.weixin.qq.com/s/L3Lv06bFdUX_ZE4rS69aDg 常规…

RAG系统-主流向量数据库

主流向量数据库功能对比 FAISS: Meta 开源的向量检索引擎 https://github.com/facebookresearch/faissPinecone: 商用向量数据库&#xff0c;只有云服务 https://www.pinecone.io/Milvus: 开源向量数据库&#xff0c;同时有云服务 https://milvus.io/Weaviate: 开源向量数据库&…

小程序迁移主体变更流程全攻略

小程序迁移变更主体有什么作用&#xff1f;有些小程序开发者&#xff0c;因为业务调整&#xff0c;或者公司更换&#xff0c;需要更换小程序主体&#xff01;但是很多开发者对于小程序更换主体的操作流程并不熟悉&#xff0c;于是我们专门准备了这篇&#xff0c;关于小程序更换…

可以在搜索结果中屏蔽指定网站的插件

可以在搜索结果中屏蔽指定网站的插件 | LogDict背景 在搜索引擎中搜索问题, 往往充斥各种无效内容 比如搜个技术类的问题, 前几页CSDN, 百度百家号, 百度经验, 百度知道, 腾讯云各类云爬的水文 CSDN基本都是复制粘贴的, 甚至格式都乱码了, 虽然我以前也干过 要复制粘贴无所谓, …

机器重启oracle数据库自动启动异常

业务连接报ora-01033&#xff1a; 检查服务器&#xff0c;发现有重启记录&#xff0c;oracle进程存在&#xff0c;数据库状态处于mount状态&#xff0c;检查日志&#xff0c;发现在数据库启动时没有正常open&#xff1a; 连入数据库&#xff1a;Select * from v$backup 发现数…

xml获取数据

获取xml文本 加载xml文本 解析xml文本&#xff1a; &#xff08;1&#xff09;获取根节点的所有字节点的list &#xff08;2&#xff09;将每个节点转换为xmlelement &#xff08;3&#xff09;从xmlelement中获取各种名称的数据 //获取xml文件TextAsset xml Resources.L…