SpringBoot开发,初始化简单项目并使用maven管理
发布于 作者:苏南大叔 来源:程序如此灵动~
Java开发虽然繁琐,但是受到了市场的检验。其中java技术变革,也经历了多次变迁。本文说的是spring家族中的spring boot。如何使用spring boot框架创建一个简单的企业网站呢?这就是本文要讨论的问题。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10,openjdk@23.0.2,IntelliJ IDEA 2024.3.4.1,maven@3.3.2,spring boot@2.5.4,java@17。Spring Boot是一个强大的框架,它简化了Java应用程序的开发。
spring 家族
spring mvc,spring boot,spring cloud是一脉相承的关系。具体来说:
spring mvc是构建网站项目的一个基础框架。但是,它的各种配置实在是太繁琐。在解决这个问题的基础上,就诞生了spring boot这个整合方案,简化spring mvc的各种繁琐配置。- 而
spring cloud是建立在spring boot基础上的,中大型网站的解决方案,集成了微服务等概念。
综上所述,更具有通用性的就是spring boot了。其官方网站是:

基础环境
java是什么,这里就不多说了。参考:
- https://newsn.net/say/brew-install-java8.html
- http://www.oracle.com/technetwork/java/javase/downloads/index.html
maven是个工具,类似于node的npm。犹如npm存在yarn/pnpm等等竞争者一样。这个maven也存在着Gradle等竞争者。苏南大叔在本文中,依然使用传统的maven。参考:
基础环境是java和maven,可以单独安装,也可以通过这个IDEA编辑器自动安装。
编辑器
对spring boot的集成度最高最好用的编辑器是InteIIiJ IDEA,在下面的这个链接下载:
至于授权码问题,个人开发者就使用你的edu邮箱,去申请个免费的授权即可。合法简单免费,参考:
其它编辑器,eclipse或者vscode之类的,也是可以使用的,只不过操作上不如IDEA更加傻瓜化。
如果使用编辑器自动安装的环境的话,java是安装在系统盘下面的openjdk@23.0.2。maven是安装在项目根目录下面的。所以,在其他的编辑器里面,想要识别java和maven的话,可能还需要做全局变量的设置。

IDEA给自动安装的版本,都不追求最新版。
java路径:C:\Users\sunan\.jdks\openjdk-23.0.2\bin\java.exe。maven命令,也是编辑器自己安装的,在项目根目录下面。- 还有一点需要说明的是:
spring boot项目不需要外置tomcat!!它内置tomcat!

新建项目
需求是做个简单的企业站,以演示目的为主,属于传统静态页面,暂不启用数据库相关模块。项目初始化有两个途径:
使用IDEA初始化
使用IDEA初始化的话,比较简单,点几下就可以了。如下图所示:




使用官方工具
spring官方也提供了初始化的工具(比如使用其它编辑器的时候),参考:



基本配置和上面的差不多,点击页面下面的生成按钮即可。
配置文件
pom.xml文件对于spring boot来说,非常重要。主要分为以下几个部分。
基本信息
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>不写的话,就无法打包,拿不到.jar或者.war文件。生成的.jar包,位置是:target/demo-0.0.1-SNAPSHOT.jar。
打包成jar包【推荐】,而不是传统的war包。两者有着本质上的区别,后续文章再讨论。
依赖信息
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>这些依赖信息,都是编辑器或者vscode copilot自动生成的。这些东西可记不下来。写好之后,就可以使用mvn install命令进行安装了。
这里的<optional>true</optional>,和npm的-D参数是差不多的意思。
其它信息
还有一些其它的配置信息,是写在src/main/resources/application.properties文件里面的。这里的内容就比较灵活了。根据依赖的需求,写什么内容都有可能。
spring.application.name=demo就类似php项目的.env文件。
项目管理命令
对项目的管理(包括安装依赖,清理文件,运行网站)等等。也就是maven命令所做的事情。包括:

| 任务 | 命令 |
|---|---|
| 安装依赖 | mvn install |
| 清理生成品 | mvn clean |
| 打包 | mvn package |
| 热加载运行 | mvn spring-boot:run |
| 带容器运行jar包 | mvn spring-boot:start |
| 停止容器 | mvn spring-boot:stop |
后几条命令,就是devtools作为maven的插件,新增加的功能。可以如下图这样调用。

除了初始化的mvn install这个安装依赖项的操作外。启动之后,就可以开启spring boot的调试之旅了。这个devtools增加的是热部署的功能,而不是热加载。两者听起来一样,区别后续文章更新。
完整源码

在本文中,由于项目需求特别简单。所以仅仅使用了controller和templates这两个部分。参考:
src/main/java/com/example/demo/controller/PageController.java:
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class PageController {
@GetMapping("/")
public String home() {
return "home";
}
@GetMapping("/products")
public String products() {
return "products";
}
@GetMapping("/about")
public String about() {
return "about";
}
}src/main/java/com/example/demo/DemoApplication.java:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}src/main/rescources/application.properties:
spring.application.name=demo模版部分,并不是本文的重点,这里仅作举例:src/main/resources/templates/home.html:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>首页</title>
<link rel="stylesheet" th:href="@{/css/styles.css}">
<style>
body {
background-color: #001f3f;
color: #ffffff;
font-family: 'Arial', sans-serif;
}
.header, .footer {
background-color: #0074D9;
padding: 20px;
text-align: center;
}
.content {
padding: 20px;
text-align: center;
}
</style>
</head>
<body>
<nav>
<ul>
<li><a href="/">Home</a></li>
<li><a href="/about">About</a></li>
<li><a href="/products">Products</a></li>
</ul>
</nav>
<div class="header">
<h1>人工智能赛博朋克风格网站</h1>
</div>
<div class="content">
<h2>欢迎来到我们的首页</h2>
<p>这里是首页内容。</p>
</div>
<div class="footer">
<p>版权所有</p>
</div>
</body>
</html>调试运行
在IDEA编辑器顶部有个绿色的运行按钮,点击就可以调试。修改文件后,就可以在编辑器里面。Ctrl+f9,内部就自动编译了。回到外面浏览器再f5一下看效果。这个步骤略显复杂,其实是可以调整的,但是“热更新”要调整的内容过多,待后续更新。

执行了spring-boot:run命令后,默认端口是8080。可以使用下面的连接,查看效果。
调试的时候,可以使用spring-boot:run热加载命令。【不好用】还是推荐配置好各种联动后(见后续文章),使用编辑器顶部的run按钮。

调试完成后,就可以使用maven的package命令,就可以生成.jar包。这个.jar包,内置tomcat。不需要额外安装tomcat。只需要下面的命令就可以运行。
java -jar demo-0.0.1-SNAPSHOT.jar结语
本文仅仅是生成的spring boot的一个最简单网站项目。更多java相关经验文字,请点击: