我们相信:世界是美好的,你是我也是。 来玩一下解压小游戏吧!

Java开发虽然繁琐,但是受到了市场的检验。其中java技术变革,也经历了多次变迁。本文说的是spring家族中的spring boot。如何使用spring boot框架创建一个简单的企业网站呢?这就是本文要讨论的问题。

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - springboot-init
SpringBoot开发,初始化简单项目并使用maven管理(图16-1)

苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10openjdk@23.0.2IntelliJ IDEA 2024.3.4.1maven@3.3.2spring boot@2.5.4java@17Spring Boot是一个强大的框架,它简化了Java应用程序的开发。

spring 家族

spring mvcspring bootspring cloud是一脉相承的关系。具体来说:

  • spring mvc是构建网站项目的一个基础框架。但是,它的各种配置实在是太繁琐。在解决这个问题的基础上,就诞生了spring boot这个整合方案,简化spring mvc的各种繁琐配置。
  • spring cloud是建立在spring boot基础上的,中大型网站的解决方案,集成了微服务等概念。

综上所述,更具有通用性的就是spring boot了。其官方网站是:

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - spring-site
SpringBoot开发,初始化简单项目并使用maven管理(图16-2)

基础环境

java是什么,这里就不多说了。参考:

maven是个工具,类似于nodenpm。犹如npm存在yarn/pnpm等等竞争者一样。这个maven也存在着Gradle等竞争者。苏南大叔在本文中,依然使用传统的maven。参考:

基础环境是javamaven,可以单独安装,也可以通过这个IDEA编辑器自动安装。

编辑器

spring boot的集成度最高最好用的编辑器是InteIIiJ IDEA,在下面的这个链接下载:

至于授权码问题,个人开发者就使用你的edu邮箱,去申请个免费的授权即可。合法简单免费,参考:

其它编辑器,eclipse或者vscode之类的,也是可以使用的,只不过操作上不如IDEA更加傻瓜化。

如果使用编辑器自动安装的环境的话,java是安装在系统盘下面的openjdk@23.0.2maven是安装在项目根目录下面的。所以,在其他的编辑器里面,想要识别javamaven的话,可能还需要做全局变量的设置。

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 默认路径
SpringBoot开发,初始化简单项目并使用maven管理(图16-3)

IDEA给自动安装的版本,都不追求最新版。

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

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 基础环境自动集成
SpringBoot开发,初始化简单项目并使用maven管理(图16-4)

新建项目

需求是做个简单的企业站,以演示目的为主,属于传统静态页面,暂不启用数据库相关模块。项目初始化有两个途径:

使用IDEA初始化

使用IDEA初始化的话,比较简单,点几下就可以了。如下图所示:

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - step-new
SpringBoot开发,初始化简单项目并使用maven管理(图16-5)

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 配置1
SpringBoot开发,初始化简单项目并使用maven管理(图16-6)

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 配置2
SpringBoot开发,初始化简单项目并使用maven管理(图16-7)

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 依赖项
SpringBoot开发,初始化简单项目并使用maven管理(图16-8)

使用官方工具

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

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - init-1
SpringBoot开发,初始化简单项目并使用maven管理(图16-9)

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - init-2
SpringBoot开发,初始化简单项目并使用maven管理(图16-10)

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - init-3
SpringBoot开发,初始化简单项目并使用maven管理(图16-11)

基本配置和上面的差不多,点击页面下面的生成按钮即可。

配置文件

pom.xml文件对于spring boot来说,非常重要。主要分为以下几个部分。

基本信息

<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
XML

不写的话,就无法打包,拿不到.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>
XML

这些依赖信息,都是编辑器或者vscode copilot自动生成的。这些东西可记不下来。写好之后,就可以使用mvn install命令进行安装了。

这里的<optional>true</optional>,和npm-D参数是差不多的意思。

其它信息

还有一些其它的配置信息,是写在src/main/resources/application.properties文件里面的。这里的内容就比较灵活了。根据依赖的需求,写什么内容都有可能。

spring.application.name=demo
XML
就类似php项目的.env文件。

项目管理命令

对项目的管理(包括安装依赖,清理文件,运行网站)等等。也就是maven命令所做的事情。包括:

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - maven install
SpringBoot开发,初始化简单项目并使用maven管理(图16-12)

任务命令
安装依赖mvn install
清理生成品mvn clean
打包mvn package
热加载运行mvn spring-boot:run
带容器运行jar包mvn spring-boot:start
停止容器mvn spring-boot:stop

后几条命令,就是devtools作为maven的插件,新增加的功能。可以如下图这样调用。

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 热加载版的run
SpringBoot开发,初始化简单项目并使用maven管理(图16-13)

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

完整源码

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 项目结构
SpringBoot开发,初始化简单项目并使用maven管理(图16-14)

在本文中,由于项目需求特别简单。所以仅仅使用了controllertemplates这两个部分。参考:

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";
    }
}
Java

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);
    }
}
Java

src/main/rescources/application.properties

spring.application.name=demo
Ini

模版部分,并不是本文的重点,这里仅作举例:
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>
HTML

调试运行

IDEA编辑器顶部有个绿色的运行按钮,点击就可以调试。修改文件后,就可以在编辑器里面。Ctrl+f9,内部就自动编译了。回到外面浏览器再f5一下看效果。这个步骤略显复杂,其实是可以调整的,但是“热更新”要调整的内容过多,待后续更新。

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 更新看效果
SpringBoot开发,初始化简单项目并使用maven管理(图16-15)

执行了spring-boot:run命令后,默认端口是8080。可以使用下面的连接,查看效果。

调试的时候,可以使用spring-boot:run热加载命令。【不好用】还是推荐配置好各种联动后(见后续文章),使用编辑器顶部的run按钮。

苏南大叔:SpringBoot开发,初始化简单项目并使用maven管理 - 运行结果
SpringBoot开发,初始化简单项目并使用maven管理(图16-16)

调试完成后,就可以使用mavenpackage命令,就可以生成.jar包。这个.jar包,内置tomcat。不需要额外安装tomcat。只需要下面的命令就可以运行。

java -jar demo-0.0.1-SNAPSHOT.jar
Plain text

结语

本文仅仅是生成的spring boot的一个最简单网站项目。更多java相关经验文字,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   java