【SpringBoot3】1.SpringBoot入门的第一个完整小项目(新手保姆版+教会打包)

12 篇文章 0 订阅
4 篇文章 0 订阅

1 SpringBoot简单介绍

1.1 SpringBoot是什么

SpringBoot的底层是Spring,SpringBoot 是Spring框架的一部分,旨在简化 Spring 应用程序的开发和部署。使用 Spring Boot 可以更轻松地创建独立运行的、生产级别的 Spring 应用程序,同时仍然可以充分利用Spring的强大功能。

1.2 主要优点

  • 简化配置: Spring Boot 使用约定大于配置的原则,通过默认配置减少了大量的样板代码。它提供了一组合理的默认值,减少了开发者需要手动配置的工作。不需要写xml文件!

  • 内嵌服务器: Spring Boot 内置了 Tomcat、Jetty 或 Undertow 等常见的服务器,使得应用程序可以作为独立的 JAR 文件运行,无需外部的 Web 服务器

  • 自动配置: Spring Boot 根据项目中使用的依赖库和类路径上的 JAR 包,自动配置应用程序。这使得开发者可以更轻松地集成第三方库,减少了手动配置的繁琐过程。

  • 开发工具: Spring Boot 提供了一组开发工具,如自动重启、热部署等,加速了开发过程。

  • 微服务支持: Spring Boot 为微服务架构提供了良好的支持。它可以轻松集成 Spring Cloud,使得构建分布式系统更加简便。

  • Spring 生态系统: Spring Boot 是 Spring 生态系统的一部分,可以轻松集成 Spring 框架的各种功能,如 Spring Data、Spring Security 等。

  • 生产准备: Spring Boot 提供了一系列生产级别的特性,如健康检查、性能监控、外部化配置等,帮助开发者构建可靠的生产应用。

1.3 术语

1.3.1 starter(场景启动器)

在 Spring Boot 中,Starter(启动器)是一种方便的方式,通过提供预配置的依赖项来简化项目的构建。启动器是一组依赖项的集合,它们通常一起使用,以支持特定类型的应用程序。Spring Boot 的启动器旨在帮助开发者轻松地引入常用的库和框架,以便更容易地配置和搭建应用程序。
Spring Boot Starter 的命名约定为 spring-boot-starter-{name},其中 {name} 描述了这个启动器的用途。

  • 常见的场景启动器
名称用途
spring-boot-starter-web用于构建基于 Spring MVC 的 Web 应用程序
spring-boot-starter-data-jpa集成了 Spring Data JPA,用于数据访问
spring-boot-starter-security集成了 Spring Security,用于安全性处理
spring-boot-starter-amqp集成了 RabbitMQ,用于消息队列
spring-boot-starter-data-redis集成了 Spring Data Redis,用于与 Redis 数据库交互

1.4 官方文档

1. documentation —— 官方详细文档
2. how to start —— 快速开始

2 环境说明

本博客提供的小案例使用了

  • java 17
  • springboot 3

3 实现代码

本博客提供的小案例的任务是,在浏览器上点击localhost:8080/hello,在页面上会显示:hello, spring boot 3!

3.1 新建工程与模块

在这里插入图片描述
将主项目下的src文件夹删除(没有用)
在这里插入图片描述
新建模块

  • 选择Maven工程
  • 填写包名 GroupId

在这里插入图片描述

3.2 加入依赖

  • module01的pom.xml文件本来长这样
    在这里插入图片描述
  • 首先加入<parent></parent>标签,所有springboot项目都必须继承自 spring-boot-starter-parent
 <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>3.0.5</version>
  </parent>
  • 然后加入web开发的必要的场景启动器
<dependencies>
    <!--        web开发的场景启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>
  • 完成后,pom.xml长这样

在这里插入图片描述

3.3 主程序文件

springboot需要一个开始运行的主程序,在src -> main -> java下新建包com.example.springboot,新建MainApplication.java

  • 注意:
    • 需要加上@SpringBootApplication注解,说明这是一个SpringBoot程序
    • 加上main程序
package com.example.springboot;

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

/**
 * @Author: yrf
 * @description:
 */
@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class, args);
    }
}

3.4 业务代码

由于要实现的业务很简单,可以直接只写一个controller来接收浏览器的请求
在包com.example.springboot下,新建controller.HelloController.java

  • 注意:
    • @Controller说明是控制层
    • @ResponseBody说明
      • 不写 @ResponseBody: 如果不使用@ResponseBody注解,Spring框架会默认将方法返回值解释为一个视图名称,并尝试根据这个视图名称寻找匹配的视图模板。这通常用于渲染HTML视图。
      • 写 @ResponseBody: 如果你在方法上使用@ResponseBody注解,Spring将不会解释方法的返回值为一个视图名称,而是将返回值直接作为响应体的内容返回给客户端。这通常用于返回非HTML数据,如JSON或XML。
    • @GetMapping说明接收的浏览器请求路径
package com.example.springboot.controller;

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

/**
 * @Author: yrf
 * @description:
 */
@ResponseBody
@Controller
public class HelloController {
    @GetMapping("/hello")
    public String hello(){
        return "hello, spring boot 3!";
    }
}

3.5 运行测试

直接运行MainApplication.java中的main方法
浏览器访问http://localhost:8080/hello,得到
在这里插入图片描述

3.6 部署打包

除了如3.5中在编译器内运行,还可以将程序打包为jar包直接在命令行运行,这样的好处是可以:

  • 独立运行:SpringBoot可以将应用程序的所有依赖(包括嵌入式服务器)打包到一个可执行的 JAR 文件中。这使得应用程序可以独立运行,无需外部的 Web 服务器或其他容器。

  • 容易部署:打包为 JAR 文件的 SpringBoot 应用程序非常容易部署。只需将 JAR 文件复制到目标服务器上,然后通过命令行或脚本启动即可。这简化了部署过程,无需手动配置大量的服务器设置。

  • jar包的运维十分方便,可以在jar包同一文件夹下新建application.properties文件,来改变数据库连接、服务器端口号、日志级别等属性
    在这里插入图片描述

    # 数据库连接配置
    spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
    spring.datasource.username=myuser
    spring.datasource.password=mypassword
    # 服务器端口配置
    server.port=8080
    # 日志级别配置
    logging.level.root=INFO
    # 应用程序名称配置
    spring.application.name=myapp
    

打包方式如下:

  • 在pom.xml文件中加入打包的插件
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  • 打开“Maven”标签,同时选中改模块的LifeCycle中的clean和package,点击运行
    在这里插入图片描述
  • 在项目文件夹的target文件夹中可以看到生成的目标jar包
    在这里插入图片描述

3.7 命令行运行

  • 右键,可以直接在资源管理器中打开该路径
    在这里插入图片描述
  • 在地址栏中输入cmd,打开命令行
    在这里插入图片描述
  • 在命令行中输入java -jar {jar包名称}.jar,可以直接运行该SpringBoot项目
java -jar module01-1.0-SNAPSHOT.jar

在这里插入图片描述

  • 注意:如果有报错,可能是因为:
    • 端口号冲突:有其他的web程序在运行,如3.5中的程序没有停止
    • 没有主清单属性:在打包jar包前,没有加入打包的插件spring-boot-maven-plugin,参考3.6节加入插件即可
    • 运行错误:可能是java版本不符合,如环境变量对应的java是1.8版本的,可以在命令行中输入```java -version``,来验证是不是要求的17版本,如果不是,打开电脑的环境变量,进行修改
      在这里插入图片描述
  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C 程序设计语言是一本经典的编程指南,由Brian W. Kernighan和Dennis M. Ritchie撰写。这本书在计算机科学领域中具有重要的地位。它是一本深入浅出的教材,适合初学者和有一定编程基础的读者。 该书共分为三个部分。在第一部分中,作者详细介绍了C语言的基本概念和语法。读者可以学习到C语言的基本数据类型、运算符、控制语句和函数等内容。此外,该部分还重点介绍了C语言的输入输出、数组和指针等重要概念。 第二部分进一步深入讲解了C语言的高级特性。读者可以学习到如何使用结构体、联合体和位字段来组织和操作复杂的数据结构。此外,该部分还介绍了C语言的动态内存分配、文件操作和预处理器等相关知识。 第三部分是该书的附录部分,包含了一些补充内容。例如,它详细解释了标准库函数和库的使用,以及如何处理常见的编程错误和调试技巧。 原书第4的特点之一是带有目录书签,方便读者快速浏览和定位到感兴趣的章节。这一特性使读者能更加高效地使用这本参考书。 总的来说,C 程序设计语言 第1~3部分 原书第4 带目录书签 是一本全面介绍C语言的权威教材。它适合各种读者,无论是初学者还是有经验的程序员。通过学习这本书,读者将掌握C语言的基本和高级概念,并能够使用C语言编写出高效、可靠的程序。 ### 回答2: c程序设计语言是一本非常经典的编程教材,由Brian W. Kernighan和Dennis M. Ritchie合著。该书原书第4带有目录书签,方便读者快速定位内容。 该书分为三个部分: 第一部分主要介绍C语言的基础知识,包括数据类型、运算符、控制流程等。其中,数据类型的介绍非常详细,包括整型、浮点型、字符型和指针等。对于初学者来说,这些内容是入门的基础,通过学习这些知识,读者可以开始编写简单的C程序。 第二部分则着重介绍C语言的函数和库,这是一个非常重要的知识点。函数是C语言程序的基本组成部分,通过函数可以提高程序的模块化程度和代码的重用性。此外,该部分还讲解了C标准库函数的使用,包括字符串处理、输入输出等常用函数的调用方法。 第三部分则深入讲解了C语言的高级特性和扩展,如指针和数组、结构体和联合体、位运算和位字段等。这些知识对于进一步掌握C语言以及进行一些更为复杂的编程任务非常有帮助。此外,该部分还介绍了一些C语言的高级编程技巧和调试技巧,帮助读者提高程序的性能和稳定性。 总的来说,c程序设计语言第1~3部分原书第4带目录书签,通过学习这本书,读者可以全面掌握C语言的基础知识,了解C语言的函数和库的使用,以及掌握C语言的高级特性和扩展。无论是初学者还是有一定基础的程序员,都可以从这本书中受益匪浅。 ### 回答3: 《C程序设计语言》是一本经典的程序设计语言教材,原书第4增加了带目录书签的特性,方便读者快速定位所需内容。下面我将用300字回答这个问题。 《C程序设计语言》是由Brian W. Kernighan和Dennis M. Ritchie合著的一本关于C语言的教材。它是C语言学习的经典教材之一,对于程序设计语言的学习和理解具有极高的参考价值。 原书第4增加了带目录书签的特性,这意味着读者可以通过书签直接跳转到目录中所列的章节,便于读者快速定位所需信息。有目录书签的存在,读者不必在翻阅整本书籍来寻找特定章节或内容,节省了宝贵的时间和精力。 对于读者来说,带目录书签的功能具有以下几个优点。首先,它方便了读者的导航。读者可以根据自己的需求,直接点击目录中的章节,快速找到所需内容,提高了阅读效率。其次,这种功能使得复习和查找知识变得更加便捷。不论是为了巩固已学知识,还是为了查找特定的代码片段或概念解释,读者可以通过书签来快速定位。最后,带目录书签的功能有助于培养读者的阅读习惯和方法。它可以教会读者如何利用书本的结构来快速获取信息,提高信息处理和获取的能力。 总而言之,《C程序设计语言》第4的带目录书签功能对于读者来说具有很大的实用价值。它不仅提高了学习效率,还培养了良好的阅读习惯和方法。无论是初学者还是有一定编程基础的读者,都能从中受益。这也是该书能够保持在编程领域中经久不衰的原因之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值