山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(三)


前言:

项目实训立项通过后的几天内,我的主要工作是完成了学习 docker 的相关知识,并在腾讯云服务器上安装 docker ,然后通过命令行对 docker 的基本使用进行基础操作实验。已经掌握了 docker 的基本使用,接下来我的任务便是学习如何使用 java 程序来远程操控服务器上的 docker 容器,进行基础的操作,例如:容器的创建、正在运行容器的停止、容器的删除、指定容器端口映射、查看系统中所有容器等等这些基本操作。由于经过小组讨论,决定我们的项目后端是基于 springboot 框架进行开发。然而我们组内成员大多数都没接触过 springboot,所以我需要先学习一下 springboot,这篇文章简单记录一下学习 springboot 过程中,个人认为较为重点的部分。然后创建一个简单的 springboot 项目用于测试。

视频课程为 B站UP狂神说系列课程:
https://www.bilibili.com/video/BV1PE411i7CV



一、Springboot 简介

在介绍 springboot 前,了解一下 spring。Spring 是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson 。

Spring 是为了解决企业级应用开发的复杂性而创建的,简化开发。

Spring是如何简化Java开发的?

为了降低 Java 开发的复杂性,Spring 采用了以下 4 种关键策略:

  1. 基于 POJO 的轻量级和最小侵入性编程,所有东西都是 bean;

  2. 通过 IOC,依赖注入(DI)和面向接口实现松耦合;

  3. 基于切面(AOP)和惯例进行声明式编程;

  4. 通过切面和模版减少样式代码,RedisTemplate,xxxTemplate;

什么是 SpringBoot

什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC类似,对比其他javaweb框架的好处,官方说是简化开发,约定大于配置, you can “just run”,能迅速的开发web应用,几行代码开发一个http接口。

Spring Boot 基于 Spring 开发,Spirng Boot 本身并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。同时它集成了大量常用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎可以零配置的开箱即用。

简单来说就是 SpringBoot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,spring boot 整合了所有的框架 。

Spring Boot的主要优点:

  1. 为所有Spring开发者更快的入门

  2. 开箱即用,提供各种默认配置来简化项目配置

  3. 内嵌式容器简化Web项目

  4. 没有冗余代码生成和XML配置的要求

二、hello world

环境准备:
java version “1.8.0_181”
Maven-3.6.1
SpringBoot 2.x


开发工具:
IDEA


1、项目创建方式一:使用Spring Initialize 的 Web页面创建项目

1、打开 https://start.spring.io/
在这里插入图片描述

2、填写项目信息
在这里插入图片描述

3、点击”Generate Project“按钮生成项目;下载此项目
在这里插入图片描述

4、解压项目包,并用 IDEA 以 Maven 项目导入,一路下一步即可,直到项目导入完毕。
在这里插入图片描述

5、如果是第一次使用,可能速度会比较慢,包比较多、需要耐心等待一切就绪。



2、项目创建方式二:使用 IDEA 直接创建项目

1、创建一个新项目

2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现

3、填写项目信息
在这里插入图片描述

4、选择初始化的组件(初学勾选 Web 即可)
在这里插入图片描述

5、填写项目路径

6、等待项目构建成功



3、测试 hello world

编写一个 http 接口

1、在主程序的同级目录下,新建一个controller包,一定要在同级目录下,否则识别不到
在这里插入图片描述

2、在包中新建一个 hello_world 类
依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

编写测试代码

package com.example.test.controller;

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

@RestController
public class hello_world {
    
    
    @RequestMapping("/hello")
    public String hello(){
    
    
        return "Hello-World";
    }
}

3、编写完毕后,从主程序启动项目,浏览器发起请求,看页面返回;控制台输出了 Tomcat 访问的端口号!
在这里插入图片描述

简单几步,就完成了一个 web 接口的开发

将项目打成 jar 包,点击 maven 的 package
在这里插入图片描述
再打包成 jar 包的过程中,可能会遇到如下错误
在这里插入图片描述
如果遇到以上错误,可以配置打包时 跳过项目运行测试用例

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <!--跳过项目运行测试用例-->
        <skipTests>true</skipTests>
    </configuration>
</plugin>

如果打包成功,则会在 target 目录下生成一个 jar 包,打成了 jar 包后,就可以在任何地方运行了,我们最后生成 docker 镜像时,也是会打包成为 jar 包,然后编写 dockerfile 文件,再生成镜像发布。



参考资料

参考博客:
https://blog.csdn.net/baidu_39298625/article/details/98102453
https://blog.csdn.net/wjg8209/article/details/94546110
https://blog.51cto.com/yaowusheng/2565318
https://www.jianshu.com/p/9f8d2d91d119


参考视频:
https://www.bilibili.com/video/BV1PE411i7CV

猜你喜欢

转载自blog.csdn.net/m0_47470899/article/details/123353326