学习spring Boot(一)

Spring Boot学习记录(一):Spring Boot 基础 SpringBoot是一个简化Spring应用开发的框架,提供了快速创建独立项目、嵌入式服务器、自动配置等特性。本文介绍了开发环境准备(JDK17+、Maven3.3+、IDEA)、创建第一个SpringBoot应用的完整流程(包括Maven配置、控制器编写、接口测试),重点解析了核心机制,还演示了项目打包部署方法,并指导使用Spring Initializer快速初始化项目结构。文中包含具体代码示例和配置说明,适合SpringBoot初学者快速入门。 阅读详情

前言:第一部分主要学习了@SpringBootApplication、@RestController和@RequestMapping注解

一、spring Boot入口类和@SpringBootApplication

当我们新建一个Project项目时,系统都会帮我们创建一个名为artifactId+Application的入口类,这个类中有一个main方法,这个main方法就是一个标准的Java应用程序的入口方法。而这里的@SpringBootApplication则是一个组合注解,

@SpringBootApplication
public class GirlApplication {

	public static void main(String[] args) {
		SpringApplication.run(GirlApplication.class, args);
}

我们可以点击去看一下SpringBootApplication的源码如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
    excludeFilters = {@Filter(
    type = FilterType.CUSTOM,
    classes = {TypeExcludeFilter.class}
), @Filter(
    type = FilterType.CUSTOM,
    classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {

我们可以看到它组合了@SpringBootConfiguration、@EnableAutoConfiguration以及@ComponentScan,我们在开发的过程中如果不使用@SpringBootApplication,则可以组合使用这三个注解,但是那样太麻烦了。这三个注解中,@SpringBootConfiguration实际上就是@Configuration注解,表明这个类是一个配置类,@EnableAutoConfiguration则表示让Spring Boot根据类路径中的jar包依赖为当前项目进行自动配置,最后一个@ComponentScan的作用就是扫描各种包,要注意的是如果我们使用了@SpringBootApplication注解的话,系统会去入口类的同级包以及下级包中去扫描实体类,因此建议入口类的位置在groupId+arctifactID组合的包名下。

注:@EnableAutoConfiguration:

二、@RestController和@RequestMapping注解

注: @RestController 和 @RequestMapping 注解是Spring MVC注解(它们不是Spring Boot的特定部分)

1、@Controller:在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式:

  (1)在SpringMVC 的配置文件中定义MyController 的bean 对象。 
  (2)在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。

2、@RestController:4.0重要的一个新的改进是@RestController注解,它继承自@Controller注解。4.0之前的版本,Spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet。使用这个特性,我们可以开发REST服务的时候不需要使用@Controller而专门的@RestController。

当你实现一个RESTful web services的时候,response将一直通过response body发送。为了简化开发,Spring 4.0提供了一个专门版本的controller。下面我们来看看@RestController实现的定义:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController

3、@RequestMapping:RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。 
RequestMapping注解有六个属性,下面我们把它分成三类进行说明:

(1)、 value, method; 
value: 指定请求的实际地址,指定的地址可以是URI Template 模式; 如果想要多个路径都能访问到,可以把路径写成一个集合的形式,例如:

@RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)

这样,通过localhost:8080/hello 和localhost:8080/hi 都可以访问到页面。

method: 指定请求的method类型, GET、POST、PUT、DELETE等;

(2)、consumes,produces 
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html; 
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

(3)、params,headers 
params: 指定request中必须包含某些参数值是,才让该方法处理。 
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

总结起来一句话就是:@RequestMapping 注解提供路由信息。它告诉Spring任何来自"/"路径的HTTP请求都应该被映射到 home 方法。 @RestController 注解告诉Spring以字符串的形式渲染结果,并直接返回给调用者。

 

【Spring Boot学习】一、使用Spring Initializer快速创建Spring Boot项目 【Spring Boot学习】一、Spring Boot快速入门 1.使用Spring Initializer快速创建Spring Boot项目 (1)New Project,选择Spring Initializer,如图所示: (2)根据向导输入名,一定要注意Artifact的项目一定要全部为小写,否则无法创建 (3)如果要创建Web项目,则选择勾选以下选项: (4)选择要保存的路径,点击fin... 阅读详情

相关推荐

基于IDEA创建Spring boot 项目(Spring的学习之旅 一)

基于IDEA创建Spring boot 项目以及Meave的配置(Spring的学习之旅 一) 前言 文章主要类容 1.搭建spring boot所使用的工具 (a)IntelliJ IDEA 2017.3.5(可下载任意版本) (b)Maven 前期准备 1:在IDEA中安装与配置maven (a)在maven 官网下载maven。 地址:http://maven.apache.org/down...

小伍哥的博客 2313

【redis】SpringBoot整合+geo地理位置应用

直接连接的Redis Server,如果在多线程环境下是非线程安全的。每个线程都去拿自己的 Jedis 实例,当连接数量增多时,资源消耗阶梯式增大,连接成本就较高了。所以,一个多线程的应用可以使用同一个连接实例,而不用担心并发线程的数量。当然这个也是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例。连接实例可以在多个线程间共享,当多线程使用同一连接实例时,是线程安全的。通过异步的方式可以让我们更好的利用系统资源,而不用浪费线程等待网络或磁盘I/O。解决安全的问题,可以用线程池。...

Mouth_OF_Lie的博客 2885

基于Spring Boot和Spring Cloud实现微服务架构学习(一)-Spring框架介绍

基于Spring Boot和Spring Cloud框架开发的微服务架构学习(一)-Spring框架介绍总结 看了几周Spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习感悟。 首先,最想说的是,当你要学习一套最新的技术时,官网的英文文档是学习的最佳渠道。因为网上流传的多数资料是官网翻译而来,很多描述的重点也都偏向于作者自身碰到的问题,这样就很容易让你理解和操作出现偏差,最开始我就进入了这样误区。官网的技术导读真的描述的很详细,虽然对于我们看英文很费劲,但如果英文不是很差,请选

zeb_perfect的专栏 8万+

这些年写过的无厘头代码(五)Springboot下使用ArcGIS Engine

springboot 中使用 arcgis engine

wangvanloon的博客 1321

Spark算子引入Spring boot 项目 按照环境获取配置信息(GeoMesa)

最近写GeoMesa 进行矢量处理的算子,因为现在区分不同的环境信息,所有的传参都是通过Redis进行触发,数据的上传也是在MiniO上,所以需要引入Spring boot 来处理环境信息和初始化过程 Spring boot 启动类代码更改 @Slf4j @SpringBootApplication public class GeoMesaToolsApplication implements CommandLineRunner { public static void main(String[]

u012453032的博客 457

用 Spring Boot 构建高可用的后端系统

在当今数字化时代,后端系统的高可用性至关重要。它直接影响着企业的业务连续性、用户体验和市场竞争力。本文章的目的在于详细阐述如何利用 Spring Boot 这一强大的开发框架来构建高可用的后端系统。范围涵盖了从核心概念的理解、算法原理的剖析、具体操作步骤的讲解,到实际项目的开发、应用场景的分析,以及相关学习资源和工具的推荐等多个方面,为开发者提供全面、系统的指导。本文共分为十个主要部分。首先是背景介绍,明确文章的目的、范围、预期读者和文档结构。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 1003

springboot整合arcgis代理resource-proxy

arcgis代理

披萨俺的辣的博客 655

springboot-hbase:以简单的订单业务示例hbse的使用&redis设计hbase查询分页

hbase 示例:订单设计&分页设计实效crud接口

一、Spring boot 学习

Spring boot 学习

weixin_45611944的博客 447

别再只盯着时序了!聊聊SDC里那些容易被忽略的‘配角’命令:工作条件、线载模型与面积约束

本文深入探讨了SDC(设计约束)中常被忽视的关键命令,包括set_operating_conditions、set_wire_load_model和set_max_area。这些‘配角’命令在芯片设计中扮演着至关重要的角色,影响时序收敛、功耗和面积优化。文章通过实际案例和最佳实践,揭示了如何正确配置工作条件、选择线载模型以及动态调整面积约束,以提升设计质量和效率。

weixin_26875109的博客 208

Informer复现 -- 完整模型

有了数据和核心的ProbAttention,接下来就可以复现完整的Informer(图1)了。图1:Informer模型结构[1]如果对图1还不太熟悉的同学,可以参考图2。由图2可知,informer与Transformer之间的差异并不大。主要区别是ProbAttention和可能的encoder最后一层的conv(源代码中用来distil)。图2:参考Transformer画的Informer模型结构。

AI_daily的博客 3491

Spring Boot学习笔记一

Spring Boot入门 Spring_Boot简介 简化spring应用开发的一个框架;(Spring Boot来建华Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用。) 整个Spring技术栈的大整合。 j2EE开发的一站式解决方案。 微服务 微服务:架构风格 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通;每一个功能元素最终都是一个可独立替换和独立升级的软件单元。 单体应用: ALL IN ONE Spring Boot He

weixin_42940901的博客 271

十五、SAP-物料需求计划(MRP)

业务逻辑、功能讲解、图文解析、章节总结

m0_72403327的博客 1092

Spring Boot学习(一)

简化Spring应用开发的一个框架;整个Spring技术栈的一个大整合;J2EE开发的一站式解决方案;优点:快速创建独立运行的spring项目以及与主流框架集成使用嵌入式的Servlet容器,应用无需打成war包,内嵌TomcatStarters自动依赖和版本控制大量的自动装配,简化开发,也可以修改默认值无需配置XML无代码生成开箱即用准生产环境的运行时应用监控与云计算的天然集成微服务是指开发单个小型的但有业务功能的服务,每个服务都有自己处理和轻量通讯机制,可以部署在单个或多个服务器上。

xuhaoyu_cpp_java的博客 252

用 SAP-ABAP-1 把 ABAP 代码读懂:从 Generative AI Hub Orchestration 到 Joule 落地的实战指南

SAP-ABAP-1 是 SAP 推出的 ABAP 专用基础模型,专注于代码解释与理解。它能显著降低企业遗留系统的维护成本,帮助开发人员快速掌握复杂业务逻辑。该模型通过 SAP Generative AI hub 托管,支持 128,000 tokens 的上下文长度,适合分析大型 ABAP 类和 CDS 视图。典型应用场景包括代码解释、迁移辅助和云合规检查。调用需通过 Orchestration service 进行,确保企业级安全治理。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1212

【YOLOv8改进-卷积Conv】 SAConv(Switchable Atrous Convolution):可切换的空洞卷积

许多现代目标检测器通过采用二次观察和思考机制展示了卓越的性能。在本文中,我们在目标检测的主干设计中探索了这一机制。在宏观层面上,我们提出了递归特征金字塔(Recursive Feature Pyramid),该金字塔将特征金字塔网络(Feature Pyramid Networks)的额外反馈连接融入到底层的自下而上主干层中。在微观层面上,我们提出了可切换空洞卷积(Switchable Atrous Convolution),该卷积通过不同的空洞率卷积特征,并使用切换函数汇集结果。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 1528

spring boot学习一

spring boot的版本:2.0.21.spring boot特征: (1)创建一个独立的spring应用 (2)嵌入了tomcat,jetty,直接下载,不需要依赖war文件 (3)提供了一个自带的starter依赖关系简化你的构建配置 (4)自动配置spring和第三方类库 (5)提供了生产就绪功能,如指标,运行状况和外部配置 (6)绝对不会生产代码并且不需要XML配置 2.jdk版本需要...

u011641008的博客 217

【中项】案例分析 | 答题技巧 | 备考 

对偏差原因的分析和对项目未来趋势的理解。如果偏差是由一次性事件或特殊原因引起的,那么这种偏差是非典型的,意味着未来的绩效将回归到预期的绩效水平。例如,如果项目初期的CPI小于1,原因是意外的自然灾害导致成本增加,那么这种偏差被认为是非典型的,因为它不太可能在未来重复发生。例如,如果项目初期的CPI小于1,且原因是低效的团队协作,那么这种偏差被认为是典型的,因为它可能在整个项目生命周期中持续存在。在实际应用中,项目经理通常会结合CPI、SPI和偏差趋势图等工具,综合分析偏差的性质,以制定合理的项目控制策略。

静谧、淡雅 1243

spring boot 学习一

Spring Boot是什么? Spring Boot为Java开发人员提供了一个很好的平台,可以开发一个可以运行的独立和生产级Spring应用程序。可以开始使用最少的配置,而无需进行整个Spring配置设置。 优点 避免在Spring中进行复杂的XML配置 以最简单的方式开发生产就绪的Spring应用程序 减少开发时间并独立运行应用程序 提供一种更简单的应用程序入门方式 Spring Boot是如何工作的? Spring Boot会根据使用@EnableAutoConfiguration批注

qq_33391644的博客 346

国科大作业考试资料《人工智能原理与算法》2024新编-第二次作业整理

1、对于下列活动,分别给出任务环境的PEAS描述, 并按2.3.2节列出的性质进行分析: 3、为图2.2中描述的吸尘器世界实现一个可以进行性能度量的环境模拟器。你的实现是必须是模块化的,以使传感器、执行器和环境特征(大小、形状、灰尘放置等)便于修改。 4、实现上述题目真空吸尘器环境中的简单反射Agent。用所有可能的初始灰尘分布和Agent位置,运行环境模拟器和Agent。记录Agent在每种情况下的性能评分和总体平均评分。

MatsumotoChrikk 1187

Xilinx DDR3 MIG IP核设计--汇总导航

快速上手Xilinx DDR3 IP核----汇总篇

孤独的单刀 2万+

一、spring boot学习之 简单入门

一、快速入门 可以进入https://start.spring.io/  快速创建一个spring boot的入门程序,其中该maven工程目录结构如下: tip:其中Application类是启动类,启动类目录层次要高于controller、service等其他类 二、全局配置文件 application.properties    以下是简单的三种配置 #自定义端口号 serve...

touni's blog 295

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

spring-boot学习:一、spring-boot是什么?

spring-boot已经成为Java开发必选框架,本文简单介绍了spring-boot的由来、策略和特性,以此来说明spring-boot是一个什么样的框架。

guangcaiwudong的博客 3124

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spring Boot学习(一)

spring Boot简介 spring boot是一款轻量级的spring框架。该框架避免了以往框架中众多的xml配置文件,采用注解方式进行配置,使得项目简洁...

rainmanqqst的专栏 74

Spring Boot学习一Hello World!

今天突然觉得,使用springboot一年多了,但是springboot提供的很多东西都不知道,往往在网上查了好久之后最终的解决方案还是在spring的官网上springboot的文档中找到的,所以打算系统的学习下springboot的官方文档。看下当前的官方版本: release版最新的是1.5.6,2.0的是M3,文档中是以2.0.0为示例介绍的,所以这里也使用2.0.0.开发环境要求: 这

坤哥的博客 1983

Spring Boot学习一

嗯,工具用的是intellij idea 朋友也推荐使用,用过android studio。确实好用。首先创建一个 Spring Boot项目。两种方式 1.可以利用这个网站创建 http://start.spring.io/然后下载下来导入即可,可以自定义,很方便。而且是maven依赖~导入intellij idea的方法是“File”->“new”->“Module from Existin

Recar的博客 623
上一篇: 慕课网学习ssm框架下的秒杀API项目web阶段启动报错500
下一篇: 学习springBoot(二)
MagicMHD
博客等级 码龄9年 503粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值