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

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

admin6个月前 (05-11)数码32

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名目中顺利性能MP-MyBatis (如何在springer上下载文献)

如何在Spring名目中顺利性能MP-MyBatis (如何在springer上下载文献)

在Spring名目中集成MP,须要启动以下性能: 1.引入依赖:在名目标pom.xml文件中参与MP相关依赖,例如:```xml<dependency><groupId&g...

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

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

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

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

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

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

Spring-Boot-Starter原理详解-b-b (springernature)

Spring-Boot-Starter原理详解-b-b (springernature)

SpringBoot Starter 是一种包含了一组特定功能和依赖关系的依赖项,旨在为特定的应用程序场景提供快速集成和开箱即用的功能。主要用于将常用的功能模块打包成一个可重用的依赖项,开发者只需...

Boot中高效成功订单30分钟智能敞开的战略指南-Spring-源代码揭秘 (high boot)

Boot中高效成功订单30分钟智能敞开的战略指南-Spring-源代码揭秘 (high boot)

形式一:经常使用定时义务 代码成功如下: 首先,咱们定义一个实体类Order,蕴含基本信息以及订单的创立期间: @EntitypublicclassOrder{@Id@Generat...

Security-Spring-守护运行程序安保的强力武器 (securitycode翻译)

Security-Spring-守护运行程序安保的强力武器 (securitycode翻译)

SpringSecurity作为一特性能弱小的安保框架,为运行程序提供了片面的安保保证,包含认证、授权、防护和集成等方面。本文将引见SpringSecurity在这些方面的特性和长处,以及它在Ja...

Spring-Cloud-散布式实时日志剖析采集的三种打算 (springboot启动)

Spring-Cloud-散布式实时日志剖析采集的三种打算 (springboot启动)

ELK曾经成为目前最盛行的集中式日志处置打算,它关键是由Beats、Logstash、Elasticsearch、Kibana等组件组成,来独特成功实时日志的搜集,存储,展现等一站式的处置打算。本...

HTTP-和-WebClient把握-Spring-Boot-RestTemplate-外部接口调用-经过

HTTP-和-WebClient把握-Spring-Boot-RestTemplate-外部接口调用-经过

在SpringBoot中调用外部接口的形式有多种,其中最罕用的是经常使用RestTemplate或许WebClient。以下是一种经常使用RestTemplate的示例,蕴含了具体的形容和实例源代...