Java企业级开发学习笔记(4.1)Spring Boot入门程序

news2024/9/20 20:36:38

该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/Qh554】

文章目录

  • 一、使用Maven方式构建Spring Boot项目
    • 1.1 创建Maven项目
    • 1.2 添加依赖
    • 1.3 创建入口类
    • 1.4 创建控制器
    • 1.5 运行入口类
    • 1.6 访问Web页面
    • 1.7 修改访问映射路径
    • 1.8 定制启动标语
      • 1.8.1 创建标语文件
      • 1.8.2 生成标语字符串
      • 1.8.3 编辑标语文件
      • 1.8.4 查看启动标语
      • 1.8.5 关闭启动标语
  • 二、 使用Spring Initializr方式构建Spring Boot项目
    • 2.1 创建Spring Boot项目
    • 2.2 创建控制器
    • 2.3 运行入口类
    • 2.4 访问Web页面
    • 2.5 修改访问映射路径
    • 2.6 利用控制器返回页面
      • 2.6.1 添加thymeleaf依赖
      • 2.6.2 准备图片作为静态资源
      • 2.6.3 创建样式表作为静态资源
      • 2.6.4 创建首页
      • 2.6.5 修改控制器
      • 2.6.6 启动应用,访问首页
    • 2.7 一个控制器方法配多个影射路径
      • 2.7.1 给hell()方法设置三个映射路径
      • 2.7.2 启动应用,测试效果
  • 三、课后作业
    • 任务1、创建Spring Boot项目输出学生信息
    • 任务2、让HelloWorld02实现页面跳转功能


一、使用Maven方式构建Spring Boot项目

1.1 创建Maven项目

在这里插入图片描述
在这里插入图片描述

1.2 添加依赖

  • pom.xml文件里添加parentweb的起步器依赖
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.kox.boot</groupId>
    <artifactId>HelloWorld01</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.11</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

</project>

1.3 创建入口类

  • 创建cn.kox.boot包,在包里创建启动类HelloWorld01Application
package cn.kox.boot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @ClassName: HelloWorld01Application
 * @Author: Kox
 * @Data: 2023/5/24
 * @Sketch: 项目入口类
 */
@SpringBootApplication
public class HelloWorld01Application {
    public static void main(String[] args) {
        // 参数1:入口类示例;参数2:命令行参数
        SpringApplication.run(HelloWorld01Application.class, args);

    }
}

1.4 创建控制器

  • cn.kox.boot包里创建controller子包,然后在子包里创建控制器HelloController
    在这里插入图片描述
package cn.kox.boot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @ClassName: HelloController
 * @Author: Kox
 * @Data: 2023/5/24
 * @Sketch:
 */
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String hello() {
        return "<h1 style='color: red; text-align: center'>Hello Spring Boot World~</h1>";
    }
}

1.5 运行入口类

  • 运行入口类 - HelloWorld01Application
    在这里插入图片描述

1.6 访问Web页面

  • 在浏览器里访问http://localhost:8080/hello
    在这里插入图片描述

1.7 修改访问映射路径

  • 修改控制器HelloController
    在这里插入图片描述
  • 在浏览器里访问http://localhost:8080/kox/hello
    在这里插入图片描述

1.8 定制启动标语

1.8.1 创建标语文件

  • resources目录下创建banner.txt文件
    在这里插入图片描述

1.8.2 生成标语字符串

  • 通过http://patorjk.com/software/taag网站生成标语字符串
    在这里插入图片描述

1.8.3 编辑标语文件

  • 将网站生成的标语字符串复制到banner.txt文件里
    在这里插入图片描述

1.8.4 查看启动标语

  • 启动应用程序,查看启动标语
    在这里插入图片描述

1.8.5 关闭启动标语

  • 修改入口程序代码
package cn.kox.boot;

import org.springframework.boot.Banner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @ClassName: HelloWorld01Application
 * @Author: Kox
 * @Data: 2023/5/24
 * @Sketch: 项目入口类
 */
@SpringBootApplication
public class HelloWorld01Application {
    public static void main(String[] args) {
        // 创建Spring应用
        SpringApplication app = new SpringApplication(HelloWorld01Application.class);
        // 设置标语模式 - 关闭
        app.setBannerMode(Banner.Mode.OFF);
        // 运行Spring应用
        app.run(args);
    }
}

在这里插入图片描述

二、 使用Spring Initializr方式构建Spring Boot项目

2.1 创建Spring Boot项目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 查看自动生成的pom.xm文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.0</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.kox.boot</groupId>
    <artifactId>helloworld02</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>HelloWorld02</name>
    <description>HelloWorld02</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.2 创建控制器

  • cn.kox.boot包里创建controller子包,然后在子包里创建HelloController
    在这里插入图片描述
package cn.kox.boot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @ClassName: HelloController
 * @Author: Kox
 * @Data: 2023/5/24
 * @Sketch: Hello控制器
 */
@Controller
public class HelloController {
    @ResponseBody
    @GetMapping("/hello")
    public String hello() {
        return "<h1 style='color: red; text-align: center'>你好,Spring Boot世界~</h1>";
    }
}

2.3 运行入口类

  • 运行入口类 - HelloWorld02Application
    在这里插入图片描述

2.4 访问Web页面

  • 在浏览器里访问http://localhost:8080/hello
    在这里插入图片描述

2.5 修改访问映射路径

  • 修改控制器HelloController
    在这里插入图片描述

  • 在浏览器里访问http://localhost:8080/kox/hello
    在这里插入图片描述

2.6 利用控制器返回页面

2.6.1 添加thymeleaf依赖

  • pom.xml文件里添加thymeleaf依赖
    在这里插入图片描述
<dependency>                                                   
    <groupId>org.springframework.boot</groupId>                
    <artifactId>spring-boot-starter-thymeleaf</artifactId>     
</dependency>                                                  

2.6.2 准备图片作为静态资源

  • static目录里创建images目录,然后在images目录里放一张图片 - img.png
    在这里插入图片描述

2.6.3 创建样式表作为静态资源

  • static目录里创建css目录,在css目录里创建index.css样式表文件
    在这里插入图片描述
body{
    background-color: red;
    text-align: center;
}

2.6.4 创建首页

  • templates目录里创建index.html页面
    在这里插入图片描述
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
    <link href="/css/index.css" rel="stylesheet", type="text/css">
</head>
<body>
<h1>Welcome to Spring Boot World~</h1>
<h3 th:text="${#dates.format(today,'yyyy年MM月dd日 HH:mm:ss')}">2023-05-10</h3>
<img src = "/images/img.png" width="300" height="250">
</body>
</html>

2.6.5 修改控制器

  • 添加映射方法index(),负责返回首页
    在这里插入图片描述
package cn.kox.boot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Calendar;

/**
 * @ClassName: HelloController
 * @Author: Kox
 * @Data: 2023/5/24
 * @Sketch: Hello控制器
 */
@Controller
@RequestMapping("/kox")
public class HelloController {
    @ResponseBody
    @GetMapping("/hello")
    public String hello() {
        return "<h1 style='color: red; text-align: center'>你好,Spring Boot世界~</h1>";
    }
    @GetMapping("/index")
    public String index(Model model) {
        model.addAttribute("today", Calendar.getInstance());
        return "index"; // 返回l逻辑视图名
    }
t
}

2.6.6 启动应用,访问首页

  • 访问http://localhost:8080/lzy/index
    在这里插入图片描述

2.7 一个控制器方法配多个影射路径

2.7.1 给hell()方法设置三个映射路径

  • @GetMapping({"/hello", "/hi", "/hey"})
    在这里插入图片描述

2.7.2 启动应用,测试效果

  • http://localhost:8080/kox/hello
    在这里插入图片描述

  • http://localhost:8080/kox/hi
    在这里插入图片描述

  • http://localhost:8080/kox/hey
    在这里插入图片描述

三、课后作业

任务1、创建Spring Boot项目输出学生信息

在这里插入图片描述

  • 运行入口类,在浏览器访问http://localhost:8080/kox/student
    在这里插入图片描述

任务2、让HelloWorld02实现页面跳转功能

  • 创建登录页面login.html
    在这里插入图片描述
<!DOCTYPE html>
<html>
<head>
  <title>User Login</title>
  <style>
    body {
      font-family: Arial, sans-serif;
    }
    .container {
      width: 300px;
      margin: 0 auto;
      padding: 20px;
      border: 1px solid #ccc;
      border-radius: 5px;
    }
    .container h2 {
      text-align: center;
    }
    .container label {
      display: block;
      margin-bottom: 5px;
    }
    .container input[type="text"],
    .container input[type="password"] {
      width: 100%;
      padding: 8px;
      border: 1px solid #ccc;
      border-radius: 3px;
      margin-bottom: 10px;
    }
    .container input[type="submit"] {
      width: 100%;
      background-color: #4CAF50;
      color: white;
      padding: 10px;
      border: none;
      border-radius: 3px;
      cursor: pointer;
    }
    .container input[type="submit"]:hover {
      background-color: #45a049;
    }
  </style>
</head>
<body>
<div class="container">
  <h2>User Login</h2>
  <form>
    <label for="username">Username:</label>
    <input type="text" id="username" name="username" required>

    <label for="password">Password:</label>
    <input type="password" id="password" name="password" required>

    <input type="submit" value="Login">
  </form>
</div>
</body>
</html>

  • 在控制器里编写负责页面跳转的映射方法
    在这里插入图片描述
  • 启动应用,查看效果

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/565040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UE5.1.1C++从0开始(10.作业三)

这次作业量和之前的相比可能会有点大&#xff0c;我先整理一下这次的作业清单&#xff1a; 魔法子弹的飞行声音以及爆炸声音给玩家增加受击的闪亮的效果&#xff0c;和立方体相同的那种增加一个health max的变量&#xff0c;把widget里头的health节点更换为health max节点&…

PythonOCR识别扫描版纯图PDF提取汉字的10大方法,力推RapidOCRPDF 可识别纯图PDF 加密签名的PDF 重点是开源免费,某些方面准确度比百度OCR高

下面实例都以下面的测试样例PDF为实验对象 非纯图可复制pdf 纯图PDF TOP1&#xff1a;RapidOCRPDF 可识别纯图PDF也能识别加密签名的PDF 重点是开源免费 https://github.com/RapidAI/RapidOCRPDF # 基于rapidocr_onnxruntime pip install rapidocr_pdf[onnxruntime]# 基于ra…

多体动力学:哈密尔顿原理的使用

参考资料&#xff1a; HAMILTON’S PRINCIPLE AND HAMILTON’S FORMULATION 原理已经讲得很详细了。如果看不到可以见我的资源&#xff0c;不用积分就可以下载。 步骤&#xff1a; 1.写出拉格朗日表达式 L T − V LT-V LT−V, T T T是系统的动能&#xff0c; V V V是系统的…

二进制安装1.26版本k8s(docker)

文章目录 前言准备工作准备4台虚拟机说明下载对应的二进制包初始化操作CentOS7配置yum源配置免密、修改hostname、关闭防火墙、selinux、关闭swap分区(方便后面进行其它操作)下载软件包并批量安装配置时间同步配置打开文件描述符添加ipvs模块和内核模块 Ubuntu配置apt源配置免密…

【数据结构】---堆排序+TOP-K问题(了解游戏排行底层原理)

文章目录 前言&#x1f31f;一、建堆的两种方式&#xff1a;&#x1f30f;1.1 向上调整建堆(堆排序)&#xff1a;&#x1f4ab;1.1.1 完整代码&#xff1a;&#x1f4ab;1.1.2 流程图(以小堆为例)&#xff1a;升序&#xff1a;建大堆&#x1f4ab;1.1.3 流程图(以小堆为例)&…

python调用海康视频汇聚平台API,获得所有摄像头设备编号、实时播放rtsp地址、回放rtsp地址

目录 1. 需求2. 思路3. 实现3.1. 确保服务器上安装视频汇聚平台&#xff08;iSecure Center&#xff09;3.2. 查看API网关是否安装成功3.3. 分配身份认证信息AK/SK3.4. 利用认证信息&#xff0c;python demo开发 1. 需求 海康视频汇聚平台(综合安防管理平台&#xff08;iSecur…

机器学习之集成学习

一、介绍 集成学习&#xff08;Ensemble Learning&#xff09;是一种机器学习技术&#xff0c;通过结合多个学习器&#xff08;例如决策树、神经网络、支持向量机等&#xff09;的预测结果&#xff0c;来达到更好的分类或回归预测性能。集成学习可以通过降低模型的方差&#x…

探究 Android 14 新功能之 TextView 搜索高亮和焦点移动~

前言 之前写的文章《Android 14 新功能之 HighLights》里&#xff0c;讲到 Android 14 里推出的 HighLights 新功能可以快速实现 TextView 文字的高亮效果&#xff0c;并支持动态更新。 本文将继续介绍 TextView 的另 2 处新功能&#xff1a; 使用 searchResultHighlight 等…

(转载)从0开始学matlab(第14天)—while循环结构

循环(loop) 是一种 matlab 结构&#xff0c;它允许我们多次执行一系列的语句。循环结构有两种基本形式 :while 循环和 for 循环。两者之间的最大不同在于代码的重复是如何控制的。在while 循环中&#xff0c;代码的重复的次数是不能确定的&#xff0c;只要满足用户定义的条件…

Metabase可视化BI系统部署安装及简单使用

metabase 是国外开源的一个可视化系统&#xff0c;语言使用了Clojure TypeScript。 Clojure&#xff08;/ˈkloʊʒər/&#xff09;是Lisp程式語言在Java平台上的現代、動態及函數式方言。来自维基百科。 我也是第一次看到这个语言&#xff0c;知道它是可以运行在Java环境上的…

脱离文档流和半脱离文档流(详解)

脱离文档流和半脱离文档流&#xff08;详解&#xff09;_脱离文档流是什么意思_大前端工程师的博客-CSDN博客 脱离文档流 脱离文档流是指&#xff0c;该元素脱离了文档中。不再占据默认分配的空间&#xff0c;它下面的元素会上去补位。 可以理解为脱离文档流的元素离开了它的座…

1720_Linux学习中的问题处理

全部学习汇总&#xff1a;GreyZhang/little_bits_of_linux: My notes on the trip of learning linux. (github.com) 这个有点学习的方法论的意思&#xff0c;画个滋味导图顺便整理一下。 遇到问题的时候&#xff0c;解决的方法大致有3中&#xff0c;而针对学习的建议有一部分是…

STL-queue和priority_queue的模拟实现

回顾 对于STL&#xff0c;我们已经知道了vector和list&#xff0c;而它们是STL中被称为六大组件之一的容器&#xff0c;我们还学习了模拟实现stack&#xff0c;而stack在STL中被称为六大组件之一的适配器&#xff0c;今天&#xff0c;我们来学习queue的模拟实现和priority_que…

分布式运用之ELK企业级日志分析系统

1.ELK的相关知识 1.1 ELK的概念与组件 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用&#xff0c; 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch&#xff1a; 是基于Lucene&#xff0…

Tomcat服务器、Servlet生命周期、上传下载文件、使用XHR请求数据、注解使用

文章目录 Servlet认识Tomcat服务器使用Maven创建Web项目创建Servlet探究Servlet的生命周期解读和使用HttpServletWebServlet注解详解使用POST请求完成登陆上传和下载文件下载文件上传文件 使用XHR请求数据重定向与请求转发重定向请求转发 ServletContext对象初始化参数 Servlet…

基于自营配送模式的车辆路径规划设计与实现_kaic

摘要 近年来&#xff0c;随着我国消费水平逐渐提升&#xff0c;消费者在网上购物的频率也越来越高&#xff0c;电商发展速度迅猛&#xff0c;加大了物流配送的压力&#xff0c;促使物流企业以更大的运力&#xff0c;更短的时间将货物送达。在货品的运输过程中&#xff0c;成本居…

TCP 连接未必都是用TCP协议沟通

确实&#xff0c;一般来说 TCP 连接是标准的 TCP 三次握手完成的&#xff1a; 1.客户端发送 SYN&#xff1b; 2.服务端收到 SYN 后&#xff0c;回复 SYNACK&#xff1b; 3.客户端收到 SYNACK 后&#xff0c;回复 ACK。 SYN 会在两端各发送一次&#xff0c;表示“我准备好了&…

MicroBlaze系列教程(9):xilisf串行Flash驱动库的使用

文章目录 1. xilisf库简介2. xilisf库函数3. xilisf配置4. xilisf应用示例工程下载本文是Xilinx MicroBlaze系列教程的第9篇文章。 1. xilisf库简介 xilisf库(Xilinx In-system and Serial Flash Library) 是Xilinx 提供的一款串行Flash驱动库,支持常用的 Atmel 、Intel、S…

Linux基本指令介绍

目录 前言 指令操作与图形化界面的对比 adduser passwd whoami ls指令 pwd指令 cd指令 touch指令 mkdir指令 rmdir指令 && rm 指令 man指令 cp指令 mv指令 cat&#xff08;显示文件内容&#xff08;全部&#xff09;&#xff0c;且不可修改的&#xff09;…

【1++的C++初阶】之模板

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的C初阶】 文章目录 一&#xff0c;浅谈模板二&#xff0c;函数模板三&#xff0c;类模板 一&#xff0c;浅谈模板 在前面的文章【【1的C初阶】之C入门篇1】中我们对函数重载有了一定的认识&a…