创建并运行一个 Spring Boot 项目

简介: 创建并运行一个 Spring Boot 项目

引言



Spring Boot 是 Spring 框架的脚手架,它存在的目的就是为了快速开发 Spring 框架而诞生的。如何理解 Spring Boot 和 Spring 呢?


如果将 Spring 比喻成农民拿镰刀手动割草,那么 Spring Boot 就相当于专业人员驾驶着割草机,自动割草。而之前的 Servlet 就是普通人,在田地里直接用手拨草…


所以说,在这个时代,Spring Boot 已经成为了一个 Java 程序员主流使用的开发框架了,它让我们从 Spring 跨越到了 Spring Boot 时代,说是一个质的飞跃,并不夸张。


但是,我们应该明确:Spring Boot 是基于 Spring 框架的框架,说到底,最核心的还是 Spring,只不过,Spring Boot 框架为开发人员带来了更快捷的操作。


第一个 Spring Boot 项目



1. 创建一个 spring boot 项目


第一步


我用的是社区版的 IDEA,所以创建一个此项目,就需要用到 【Spring Assistant】这样的插件。


如果你的 IDEA 版本搜寻不到这样的插件的话,可以重新下载一个 2020 版本的,因为本人之前就是使用的 2022 版本的社区版 IDEA,结果发行没有上面的插件。


下面的 Custom 可以用来配置国内源,但是一般我们不用,点击 Default 就好,除非你的网速真的很差,否则我认为还是少折腾的好,因为国内源提供的版本比较老。


86f4555af5df43639b4e3ef71dd2955d.png


第二步


日常我们学习阶段,下面只需要将 Java 版本更改即可,一般推荐使用 Java 8.

其他的设置,日后在工作中,可以根据项目要求来定义。


ed31c3bcbe5f4146b72033241bab0b5c.png


第三步


选择 Spring Boot 版本号,选择需要的依赖。


Spring Boot 版本号:我们应该选择一个稳定版的,版本后面不带括号的。

Spring Boot DevTools:表示我们开发 Spring Boot 项目的工具包。


Lombook:后面我们会详细介绍。

Spring Web:表示我们创建的项目可以基于 HTTP 协议,成为一个 Web 项目,也就是里面内置了 Tomcat,供前后端交互。


6096c9ee290d4f2e9eb83e844dcd5297.png


第四步


创建项目名称,并规定保存路径。


9dd27cf0852244f48e15dbfa2208d955.png


2. 验证


第一步


当创建好了项目,进入 IDEA 主界面的时候,第一次进来的时候,加载好的速度会很慢,因为当前的 Spring Boot 框架之前并没有存放在本地仓库中。


当出现下图的一个标志性的类 " DemoApplication " ,它是一个启动类,当我们发现它的图标是一个 " C ",并且上面有个三角符号,说明这个类没问题了。


之后,我们打开这个类,什么代码也不要写入,直接启动,如果打印出现下面的一些日志,就表示项目创建无误了。


ba515a508f5c40ea926a05f8a1f82f58.png


第二步


如果在第一步很慢的话,我们就要配置国内源,以后的项目也应该配置国内源。

我们一开始创建 Spring Boot 项目的时候,没有配置国内源,是因为,那里国内源的版本太靠后。


但是,这里需要配置国内源,是因为 maven 需要国内源来下载一些依赖,并自动放入 " pom.xml " 这个文件中,如果我们不配置,一旦依赖下载超时之后,就会导致在后续的使用中,一些 maven 提供的包我们用不了。


我需要事先声明,配置国内源的时候,应在网络良好的情况下配置,否则在后续运行 spring 项目的过程中,可能会出现奇奇怪怪的异常。


078066b008b64b02845bea8a39d00e70.png


如果有小伙伴需要 " settings.xml " 文件,可以去我上一篇【Spring 博客】找一下,那里有文件的整个内容,以及镜像说明。


3. 写一个 hello world


第一步


创建一个 " UserController " 类,写入下面代码:


@Controller
public class UserController {
    @RequestMapping("/hello") //设置路由地址
    @ResponseBody // 返回 HTTP响应数据
    public String hello() {
        return " hello world ";
    }
}



解析代码


(1) " @RequestMapping " 这个注解就相当于 Servlet 代码中的 " WebServlet ",它是用来告诉前端,以什么样的 " URL " 来发送 HTTP 请求的,只不过前者是加在方法上,后者是加在类上的。此外,这里的路由地址,统一为小写,防止后续前端访问数据,发生出错的情况。


(2) " @ResponseBody " 表示返回的是一个非静态的页面,只返回给前端 HTTP 响应中正文的数据,也就是说,这个数据是未经过 HTML 处理的。


(3) 在这里,类上面只能加上 " @Controller ",而不能加上其他的四大类注解。因为, " @Controller " 的功能就是用来与前端交互的,其他类注解并没有这个功能。


第二步


写好代码后,启动 " DemoApplication " 类,如果我们看到 IDEA 的打印日志,像我刚刚说的那样,没有报错,我们就可以利用浏览器发送一个 HTTP 请求。


展示结果:


deb1b34053814388b60d171a8f7fb9a2.png


抓包结果:


f8429d5d39154300ae5b4ff3517a23a9.png


注意事项


一般来说,我们创建一个实现我们的业务代码类,都会放在与 " DemoApplication " 类平级的目录下,也就是下面的 " demo " 包下。


然而,这里的 Spring Boot 有一个隐含的约定:


我们创建的类所在的目录,不能比 " DemoApplication " 启动类所在的目录高,也就是说,当我们创建的类放在了 " example " 或者 " com " 下,就会导致前端访问失败,如果放在了 " demo " 或 " demo1 " 下,就不会失败。


e29cb8d10f704ce18d00b39f373b6011.png


学过 Spring 初级框架的小伙伴,都应该知道一个配置文件 " sping-config.xml ",它就是用来指定一个根路径,以便于框架从根路径下,找寻你实现的类,如果你创建的类,在根路径之上,那么就会出错。


而在这里的 Spring Boot 其实是一样的,它的思想是 " 约定大于配置 ",实际上,用 Spring Boot 框架,它并不需要我们设置配置文件,但是我们应该知道创建一个类的路径,是不能随意放的,这是一种规范!


而在后面的学习中,很多依赖、文件并不需要我们手动引入,都是框架为我们实现好了的,但是我们也要遵循当前框架的规则,只有掌握了规则,环境才不会出错。


网页创建一个 Spring Boot 项目



网页地址:


https://start.spring.io/


通过网页创建一个 Spring Boot 项目的时候,它可供我们选择的选项,与用 IDEA 创建的时候是一样的,如下图所示:


98990fe376ae4411b86422d3ce8f579c.png


当我们点击生成的时候,浏览器就会下载一个 " zip " 这样的压缩包,下载到本地,默认名称就是 " demo "。之后,我们可以为其解压缩成一个文件夹的形式,解压后的 " demo " 文件夹,就和我们平时创建的一个项目是一样的,之后,我们利用 IDEA 打开,就可以进行后续的操作了。


ad1ac98091284e10ad6edf64254032dc.png


Spring Boot 的优点



1. 当我们创建一个 maven 项目的时候,不需要自己手动去 maven 仓库去搜索依赖。我们只需要选中 Spring Boot 框架提供的勾选框后,它就会自动帮我们实现好,并自动添加到 " pom.xml " 文件中。也就是说,我们写代码可以完全脱离 xml 文件,但是一个 maven 项目依然需要它。


2. 内置了运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。之前,我们创建 Servlet 或 Spring 项目的时候,使用 Tomcat 时,还需要手动添加依赖,并感知它的运行。现在,Spring Boot 直接内置了 Tomcat,并自动为我们的项目适配一个合适的 Tomcat 版本,这就很人性化了。


3. 支持持更多的监控指标,可以更好地了解项目的运行情况。


目录
相关文章
|
7月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
503 7
|
7月前
|
前端开发 安全 Java
Spring Boot 便利店销售系统项目分包设计解析
本文深入解析了基于Spring Boot的便利店销售系统分包设计,通过清晰的分层架构(表现层、业务逻辑层、数据访问层等)和模块化设计,提升了代码的可维护性、复用性和扩展性。具体分包结构包括`controller`、`service`、`repository`、`entity`、`dto`、`config`和`util`等模块,职责分明,便于团队协作与功能迭代。该设计为复杂企业级应用开发提供了实践参考。
287 0
|
4月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
394 3
|
4月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
230 0
|
4月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
403 0
|
4月前
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
296 1
|
4月前
|
Java 应用服务中间件 Maven
第01课:Spring Boot开发环境搭建和项目启动
第01课:Spring Boot开发环境搭建和项目启动
647 0
|
7月前
|
SQL 前端开发 Java
深入理解 Spring Boot 项目中的分页与排序功能
本文深入讲解了在Spring Boot项目中实现分页与排序功能的完整流程。通过实际案例,从Service层接口设计到Mapper层SQL动态生成,再到Controller层参数传递及前端页面交互,逐一剖析每个环节的核心逻辑与实现细节。重点包括分页计算、排序参数校验、动态SQL处理以及前后端联动,确保数据展示高效且安全。适合希望掌握分页排序实现原理的开发者参考学习。
477 4
|
7月前
|
Java Spring 容器
两种Spring Boot 项目启动自动执行方法的实现方式
在Spring Boot项目启动后执行特定代码的实际应用场景中,可通过实现`ApplicationRunner`或`CommandLineRunner`接口完成初始化操作,如系统常量或配置加载。两者均支持通过`@Order`注解控制执行顺序,值越小优先级越高。区别在于参数接收方式:`CommandLineRunner`使用字符串数组,而`ApplicationRunner`采用`ApplicationArguments`对象。注意,`@Order`仅影响Bean执行顺序,不影响加载顺序。
580 2