开发者学堂课程干货总结——Spring Boot 2.5.x开发实战(二)

简介: Spring Boot 2.5.x开发实战课时2——Spring Boot2.5实战开发REST API模拟淘宝订单接口 ,Spring Boot 2.5.x开发实战是学习Java Spring Cloud微服务架构的必经之路。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦

哈喽各位同学们大家好呀,今天小编为大家分享开发者学院中课程“Spring Boot2.5实战开发REST API模拟淘宝订单接口”干货总结哦~Spring Boot 2.5.x开发实战可Java中级工程师必备课程;

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Spring Boot 2.5.x开发实战

课程地址:https://developer.aliyun.com/learning/course/71

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


Spring Boot2.5实战开发REST API模拟淘宝订单接口


一、Spring Boot 2.5开发 快速入门 

(一)Spring Boot 开发环境准备 

本节课讲的是Spring Boot2.5实战开发REST API模拟淘宝订单接口从hello world开始逐步把项目给复杂化Spring Boot属于快速开发框架,底层还是依赖于其他框架简化了整个项目的配置,包括依赖、加载系列过程。开发网站还依赖于底层Servlet-API包括Spring MVC库以及Tomcat相关容器组件。有的观点说Spring Boot是取代Spring MVC,是错误的,并不是取代,而是更方便使用这个框架。 

Spring Boot 开发环境准备包括: 

1. Open JDK 1.8 

2. Eclipse 4.6+开发工具 

3. 或者IDEA开发工具 

image.png 

image.png 

(二)Spring Boot 2.5实战Demo,详细操作见第二章节 

image.png 

(三)下载解压缩,详细操作见第二章节 

image.png 

 

(四)简化配置,详细操作见第二章节 

image.png 

 

二、Spring Boot 2.5快速开发REST API 

(一)Spring Boot 2.5快速开发 REST API 

网页演示: 

打开“start.spring.io”进入到如下面所示的界面, 

image.png 

Spring Boot可以选2.5.0也可以选2.4.1;Artifact 栏输入“SpringBootDemo”;Jave选“8”,也可以选15,但目前大多数公司还是用“8”。现在做网站开发,一般要输入“web”关键字,底层注释使用的是SpringMVC”,容器用的是“Tomcat 作为默认嵌入式的 Web容器,可以用于构建网站,也可以用于开发RESTful API 

image.png 

 

注意一下,这里面也可以选别的框架,输入web对应的依赖很多,web相关的组件都会列出来,包括过期的组件。 

image.png 

   这里选择传统的“SpringMVC”,点击确定生成一个压缩包,可以直接导入到直接使用,也可以解压以后再用编译器直接来做。这里讲一个比较简单的方,直接下载安装“Spring Starter Project插件,然后在“Other”里面选择Spring Boot的扩展“Spring Starter Project”然后按照项目的向导构建。 

image.png 

Name输入“JavaSpringBoot25xDemo”; Java Version 版本选“8”;Group输入“com.alibaba”;Description输入“Demo project for Sprint Boot 2 5x”;Package输入“com.alibaba.demo”;进入下一步, 

image.png 

Spring Boot Versions 版本选择最新版2.5.0 ,实际操作中建议选低一点的版本,一年以前的版本比较有保证一些,演示我们选择新的版本。Aaliable选择“web”,web区选“Spring Web”; 下一步: 

image.png 

点击“Finish”,会生成一个mvnw项目,有pom文件,会有一个加载过程,第一次加载时间比较久,建议不要随意修改版本,会导致不必要的加载,下载依赖包,而且取决于网络下载的慢或者快中间有没有中断的过程,项目启动的时候会报错等。 

这时基本结构已经有了,看一下基本结构整个项目有一个注解用于加载配置解析配置参数加载必要的依赖等。打开Maven Dependencies 可以看到很多很多的依赖,如下图所示: 

 image.png 

这就是傻瓜式编程很重要的原因,在Maven Dependencies里面配置starter基础依赖时,内部有依赖包清单,清单包括“spring boot starter web”等等一系列的东西,全部加载进来。表面是一个依赖,实际被解析成一列依赖列表。 

image.png 

(二)修改端口 

这个项目可以直接启动,嵌入的Tomcat属于9.0版本,默认端口是8080有可能本地已经有Tomcat,可能会冲突,适当去改一下参数,这里有很重要的配置文件application.properties:可以修改端口,用server.port=8088;程序名:Spring.application.name=SpringBoot25xDemo;主机名也可以改。 

image.png 

 

输入完成后启动,启动有几种方式,可以用解压包的形式构建,也可以右选Run As ,可以用 Spring Boot APP启动,也可以选Java Application普通程序启动。看日志是否成功,因为程序里什么也没有,但是也可以看到“Tomcat”根地址。 

image.png 

 

 

三、测试Rest API接口 

(一)浏览器测试API 

现在测试Rest API,加Rest控制器,左边“com.alibaba.demo-New-Class”,打开Jave Class ,name输入hello”。 

image.png 

加个注解,如果没有注解容易出错,输入Hello(),造一个方法,把其暴露出去,作为Rest API,返回字符串“Hello Spring Boot 25x”,暴露f地址@RequstMapping(“hello”) 

image.png 

再启动一次,右选Run As ,选Java Application普通程序启动,基本程序造构建完成了 

现在程序启动了没报错,打开浏览器测一下,输入“localhost:8088/hello”,返加字符串“Hello Spring Boot 25x”,这种就成功了。 

image.png 

 

(二)修改contextpath 

把标准项目改成复杂项目,比如加一个淘宝订单,用同样的方法,加一个order,操作是一样的。可以把代码复制过去直接改。 

image.png 

代码改成: 

image.png 

Order类型没有,可以用上面的方法创建Order类,但是目前Order是空的, 

image.png 

 

order里输入 private int id; private String title;订单的名字, 

image.png 

生成Select getters测试器 

image.png 

把Order调出为使用,输入以下代码和字符串: 

image.png 

重启一下,右键选Run As ,选Java Application普通程序启动。打开网页输入“localhost:8088/getOrder”,显示输出如下字符串: 

image.png 

以上操作没有连真数据库,主要用于演示,返回的是Jackson数据,默认用的是Jackson序列化,阿里开源的叫Fastjson序列化本节课讲的是Spring Boot2.5实战开发REST API模拟淘宝订单接口,从hello world开始,然后改成get older逐步把项目给复杂化 

相关文章
|
4月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
5月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
962 3
|
3月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
Spring Boot 3.x 微服务架构实战指南
|
3月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
9月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
591 7
|
8月前
|
人工智能 Java API
Spring AI 实战|Spring AI入门之DeepSeek调用
本文介绍了Spring AI框架如何帮助Java开发者轻松集成和使用大模型API。文章从Spring AI的初探开始,探讨了其核心能力及应用场景,包括手动与自动发起请求、流式响应实现打字机效果,以及兼容不同AI服务(如DeepSeek、通义千问)的方法。同时,还详细讲解了如何在生产环境中添加监控以优化性能和成本管理。通过Spring AI,开发者可以简化大模型调用流程,降低复杂度,为企业智能应用开发提供强大支持。最后,文章展望了Spring AI在未来AI时代的重要作用,鼓励开发者积极拥抱这一技术变革。
2945 71
Spring AI 实战|Spring AI入门之DeepSeek调用
|
9月前
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
9月前
|
安全 Java 数据库
Spring Security 实战指南:从入门到精通
本文详细介绍了Spring Security在Java Web项目中的应用,涵盖登录、权限控制与安全防护等功能。通过Filter Chain过滤器链实现请求拦截与认证授权,核心组件包括AuthenticationProvider和UserDetailsService,负责用户信息加载与密码验证。文章还解析了项目结构,如SecurityConfig配置类、User实体类及自定义登录逻辑,并探讨了Method-Level Security、CSRF防护、Remember-Me等进阶功能。最后总结了Spring Security的核心机制与常见配置,帮助开发者构建健壮的安全系统。
1055 0
|
5月前
|
人工智能 监控 安全
如何快速上手【Spring AOP】?核心应用实战(上篇)
哈喽大家好吖~欢迎来到Spring AOP系列教程的上篇 - 应用篇。在本篇,我们将专注于Spring AOP的实际应用,通过具体的代码示例和场景分析,帮助大家掌握AOP的使用方法和技巧。而在后续的下篇中,我们将深入探讨Spring AOP的实现原理和底层机制。 AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的核心特性之一,它能够帮助我们解决横切关注点(如日志记录、性能统计、安全控制、事务管理等)的问题,提高代码的模块化程度和复用性。