当前位置:首页 > 数码 > 一文搞懂Spring-Boot控制器的关键要点 (一文搞懂spring@autowired)

一文搞懂Spring-Boot控制器的关键要点 (一文搞懂spring@autowired)

admin4个月前 (05-11)数码21

SpringBoot运行程序中的控制器表演着关键角色,担任处置传入的HTTP恳求并确定应发送的适当照应。本文深化引见SpringBoot中的控制器,包括如何创立控制器、处置各种类型的恳求以及前往照应的方法。为了更好地理解这些概念,文中会提供一些示例加以说明。

1控制器简介

1.1什么是控制器

SpringBoot中的控制器是类,担任处置传入的HTTP恳求并前往适当的照应。控制器充任客户端(通常是Web阅读器或移动运行程序)与运行程序业务逻辑之间的两边人。

1.2控制器在SpringBoot中的作用

Spring

控制器作为恳求进入运行程序的入口点,接纳恳求,处置必要的数据,并确定适当的照应。这包括前往页面、用于API的JSON数据,甚至重定向到其余URL。

2创立控制器

2.1设置SpringBoot名目

在创立控制器之前,须要设置一个SpringBoot名目。可以经常使用SpringInitializr或读者青睐的集成开发环境来成功此操作。

2.2创立控制器类

在SpringBoot中,控制器是一个经常使用@Controller或@RestController(用于API)注解的Java类。上方是个繁难控制器的示例:

importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMing;importorg.springframework.web.bind.annotation.ResponseBody;@ControllerpublicclassHelloController{@GetMapping("/hello")@ResponseBodypublicStringsayHello(){return"Hello,World!";}}

在此示例中,创立了一个名为HelloController的控制器,它有一个名为sayHello()的方法,用于处置对/hello端点的GET恳求。@GetMapping注解将该方法映射到指定的URL,而@ResponseBody批示前往值应间接用作HTTP照应。

3处置不同类型的恳求

3.1处置GET恳求

GET恳求用于从主机检索数据。上方是处置GET恳求的示例:

@GetMapping("/user/{id}")@ResponseBodypublicStringgetUser(@PathVariableintid){//检索具有给定ID的用户的逻辑return"用户ID:"+id;}

在此示例中,经常使用@PathVariable注解从URL门路中提取id。

3.2处置POST恳求

POST恳求用于向主机发送数据。上方是处置POST恳求的示例:

@PostMapping("/user")@ResponseBodypublicStringcreateUser(@RequestBodyUseruser){//创立新用户的逻辑return"用户已创立:"+user.getName();}

3.3处置PUT和DELETE恳求

PUT恳求用于降级现有数据,而DELETE恳求用于删除数据。上方是处置PUT和DELETE恳求的示例:

@PutMapping("/user/{id}")@ResponseBodypublicStringupdateUser(@PathVariableintid,@RequestBodyUseruser){//降级具有给定ID的用户的逻辑return"用户已降级:"+user.getName();}@DeleteMapping("/user/{id}")@ResponseBodypublicStringdeleteUser(@PathVariableintid){//删除具有给定ID的用户的逻辑return"用户已删除:"+id;}

这些示例展示了如何在SpringBoot控制器中处置不同类型的恳求。宿愿对读者有所协助。


springboot的简单理解

依赖由maven管理,1不谈 2其实就是要把依赖的jar包里的config生效

看看springboot的注解

核心注解是这几个: @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。 @EnableAutoConfiguration:打开自动配置的功能。 @ComponentScan:Spring组件扫描。 其中,@EnableAutoConfiguration

这里import了AutoConfigurationImportSelector,这个类通过加载依赖包中的META-INF/ import、configuration、componentscan这几个注解都是通过ConfigurationClassPostProcessor实现的,这个后处理器是一个beanfactory后处理器

如上所述,springboot会加载依赖中的文件,那么只要在其中配置自己的config类,就可以被spring发现了。 贴一个典型的文件

于是MybatisPlusAutoConfiguration会被框架发现,这个类通过@Configuration注解可以作为config类被spring纳入,类中框架作者声明的一些@Bean可以作为默认配置生效,效果同自己在application-context中配置。

另一个关注的点是spring boot的配置文件,yml或properties是如何被加载的,以及我们使用配置文件中变量的实现

spring-boot-autoconfigure模块已经帮我们内置了一大片常用的AutoConfiguration,通常都会有一些condition注解去触发,如果我们引入了相关的starter就会触发其中的配置。这也是所谓“约定大于配置”的一种体现.

springboot帮我们做的两件事,一个是通过starter引入我们需要的框架,starter负责引入自己的依赖;另一个是通过autoconfigure生效一些默认的配置,简化我们的使用,这一步是通过中定义的配置类实现的。 以上就是暂时对springboot比较浅的理解,待后续深入。

深入springboot原理——一步步分析springboot启动机制(starter机制) 手把手带你剖析 Springboot 启动原理! Spring Boot读取配置的几种方式

springBoot是什么?

Spring Boot可以轻松创建可以“直接运行”的独立的、生产级的基于Spring的应用程序。

我们对Spring平台和第三方保持固执己见的看法,因此您可以轻松上手。大多数Spring Boot应用程序需要最少的时间Spring配置。

其特征如下:

创建独立的Spring应用程序

直接嵌入Tomcat、Jetty或Undertow(无需部署WAR文件)

提供自以为是的“入门”依赖项以简化您的构建配置

尽可能自动配置Spring和3rd方库

提供生产就绪功能,例如指标、健康检查和外部化配置

完全无需代码生成,无需XML配置

Spring快速入门指南

第一步:启动一个新的Spring Boot项目

利用启动创建一个“网络”项目。在“依赖项”对话框中搜索并添加“web”依赖项,如屏幕截图所示。点击“生成”按钮,下载zip,然后将其解压缩到计算机上的文件夹中。

创建的项目启动包含弹簧靴,一个使Spring准备好在您的应用程序中工作的框架,但不需要太多代码或配置。Spring Boot是启动Spring项目的最快和最流行的方式。

第2步:添加您的代码

在IDE中打开项目并在文件夹中找到该文件

src/main/java/com/example/demo。现在通过添加下面代码中显示的额外方法和注释来更改文件的内容。您可以复制并粘贴代码或直接输入。

hello()我们添加的方法旨在获取一个名为的字符串参数name,然后将该参数与Hello代码中的单词结合起来。这意味着如果您“Amy”在请求中将您的姓名设置为,则响应将为“Hello Amy”.

RestController注释告诉Spring这段代码描述了一个应该在web上可用的端点。 GetMapping(“/hello”)告诉Spring使用我们的方法hello()来回答发送到该

地址的请求。最后, RequestParam告诉Springname在请求中期待一个值,但如果它不存在,它将默认使用单词“World”。

第3步:尝试一下

让我们构建并运行程序。打开命令行(或终端)并导航到您拥有项目文件的文件夹。我们可以通过发出以下命令来构建和运行应用程序:

您应该会看到一些与此非常相似的输出:

这里的最后几行告诉我们Spring已经开始了。Spring Boot的嵌入式Apache Tomcat服务器充当Web服务器,并正在侦听localhostport上的请求8080。打开浏览器,在顶部的地址栏中输入你好.你应该得到一个很好的友好回应,如下所示:

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: SpringBoot

“一文搞懂Spring-Boot控制器的关键要点 (一文搞懂spring@autowired)” 的相关文章

概念-Spring-AOP-实现原理和应用-中的 (概念股股票)

概念-Spring-AOP-实现原理和应用-中的 (概念股股票)

什么是AOP? AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,其主要目的是将横切关注点(cross-cutting concern)从主要业务...

比如每日有大量用户访问和数据替换-服务器的带宽需求与网站的访问量密切相关-那么就须要更大的带宽来满足需求-访问量-假设你的网站流量大 (比如每日有大事的句子)

比如每日有大量用户访问和数据替换-服务器的带宽需求与网站的访问量密切相关-那么就须要更大的带宽来满足需求-访问量-假设你的网站流量大 (比如每日有大事的句子)

SpringBeanDefinition元信息定义形式 BeanDefinition是一个蕴含Bean元数据的对象。它形容了如何创立Bean实例、Bean属性的值以及Bean之间的依赖相关。...

b-b-核心原理拆解与源码分析-2.0-Spring-Boot-深度实践 (核心b类期刊有哪些)

b-b-核心原理拆解与源码分析-2.0-Spring-Boot-深度实践 (核心b类期刊有哪些)

SpringBoot是一个基于Spring的轻量级框架,它简化了Spring应用程序的创建过程,使得开发者能够快速搭建一个可运行的应用程序。随着SpringBoot2.0版本的发布,其功能和性能得...

Security权限控制框架入门指南-Spring (security)

Security权限控制框架入门指南-Spring (security)

在罕用的后盾治理系统中,通常都会有访问权限控制的需求,用于限度不同人员关于接口的访问才干,假设用户不具有指定的权限,则不能访问某些接口。 本文将用waynboot-mall名目举例,给大家引...

Boot-Spring-与-3.0-加速应用性能的完美融合-GraalVM (bootstrap)

Boot-Spring-与-3.0-加速应用性能的完美融合-GraalVM (bootstrap)

在 2023 年,SpringBoot 3.0 的发布标志着 Spring 框架对 GraalVM 的全面支持。此支持对 Spring 技术栈来说是一项重大补充。 GraalVM 概述...

Spring-Webflux-Boot-虚构线程性能逊色于-深化比较 (springboot)

Spring-Webflux-Boot-虚构线程性能逊色于-深化比较 (springboot)

早上看到一篇关于SpringBoot虚构线程和Webflux性能对比的文章,感觉还不错。内容较长,抓重点给大家引见一下这篇文章的外围内容,繁难大家极速浏览。 测试场景 作者驳回了一个尽...

揭秘-的暗藏技艺-AOP-从概念到实用场景-Spring (神秘丂丂是什么意思)

揭秘-的暗藏技艺-AOP-从概念到实用场景-Spring (神秘丂丂是什么意思)

环境:Spring5.3.23 1.引见 当天看Spring文档看到这么一个常识点《ControlFlowPointcuts》都不好翻译 官网原文: Springcontr...

容器启动有效的交互-Spring-如何利用-框架提供的才干-让-Bean-深化了解并与-Spring (容器启动过程)

容器启动有效的交互-Spring-如何利用-框架提供的才干-让-Bean-深化了解并与-Spring (容器启动过程)

Spring有一个特点,就是创立进去的Bean对容器是无感的,一个Bean是怎样样被容器从一个Class整成一个Bean的,关于Bean自身来说是不知道的,当然也不须要知道,也就是Bean对容器的...