当前位置:首页 > 服务端 > 高并发秒杀系统API之SSM集成swagger与AdminLTE

高并发秒杀系统API之SSM集成swagger与AdminLTE

2022年08月04日 19:11:17服务端6

初衷与整理描述

Java高并发秒杀系统API是来源于网上教程的一个Java项目,慕课网地址:https://www.imooc.com/learn/587。 也是我接触Java的第一个项目。本来是一枚c#码农,公司计划部分业务转java,于是我利用业务时间自学Java才有了本文,本来接触之初听别人说,c#要转java很容易,我也信了,但是真正去学习的时候还是踩了无数个坑,好在朋友有几个做安卓的,向他们讨教了一些经验,但是他们做安卓的和web又是两个方向,于是继续一个人默默采坑避雷之旅,首先上手的是下面这个Java高并发秒杀系统API。

学习java的初衷一个是公司转行,二是自己也想学学看,增加下技术的厚度,多了解下不同编程语言,不同实现方式。融会贯通,才能打通任督二脉。之前也看过python的东西,但是兴趣不大,Java毕竟生态很好,各种大神很多,每个语言也有不同的优缺点,多了解有利于自身发展。

关于这个秒杀系统园子已经有几位大神写过了相关的文章,其实本不想献丑的,权且当作学习笔记看吧,重点讲的是在这个系统之上集成swagger和AdminLTE,为什么集成它们呢,因为我已经在c#.net项目里面做过相关的内容,
ABP+AdminLTE+Bootstrap Table权限管理系统一期 ,哈哈,自我营销一下,有兴趣的朋友可以看一下顺便点个赞再走?
本来以为swagger ui和AdminLTE集成会很简单的,但是动手去做的时候发现了很多问题,由于我之前就是抱着先写一个web项目再说的初衷去做的,做完之后确实发现了很多问题,其实最重要的问题就是基础不牢,地动山摇,写完这篇文章之后,我决定要重基础学着来,深度学习一下。包括但不限于像tomcat,servlet,Webservice,MyBatis,Maven,spring,spring boot,spring cloud。

上手

废话不多说,开整。关于Java开发环境的配置我就不扯了,网上教程一大堆,说下Maven的配置,首先去官网下载http://maven.apache.org/download.cgi
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记
然后是系统变量的配置
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记
Path配置
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

然后win+R快捷键cmd进入dos窗口,输入命令,mvn -v(注意中间有个空格),回车运行后可以看见maven版本maven home表示安装成功

Maven 自动生成项目

最后在命令行中输入以下命令:mvn archetype:generate -DgroupId=cn.codingxiaxw.seckill -DartifactId=seckill -Dpackage=cn.codingxiaxw.seckill -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp
注意下图中的两个回车,开始我就等了好久没有反应,查看项目没有,
这里的回车大概意思是默认DgroupId和DartifactId。
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记
然后打开上面命令行中的地址,看到如下文件内容说明项目生成成功。

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记
IDEA打开并不全项目结构如下。
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

接下来配置tomcat.
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

配置好了打开 localhost:8080就能看到相关效果,这里要注意一个大坑,特别的初入Java朋友,如下图。

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

老是报无效标记的错误。网上找了大圈都不符合我的错误。最后我下载了jdk1.8版本就解决了,问题就是idea 和jdk 9.0在项目中出现冲突了。问题解决了我也没有去深究,估计还有其他问题。当时各种问题排除了,代码检查了N遍,万万没想到是jdk的错误。

pom.xml

然后就是配置pom.xml,代码很长我就不贴出来了,直接去我的github pom.xml看吧:https://github.com/Jimmey-Jiang/seckill/blob/master/seckill/pom.xml,这里包含了后面要说的swaggerui 的引入。
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

基础业务编写

接下来就是跟着教程一步一步的写。包括dto,entity,dao,service,web,控制器,视图,test测试类,jsp的编写。具体我就不说了,去我的github上clone下来打开看看就明白了或者去看教程吧

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

初步效果

编写完效果如下。
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

swagger集成

其他的代码教程上有,最后重点讲一下swagger的集成。
首先当然是去下载swagger,然后引入项目,然后修改index.html里面的url为http://localhost:8080/api-docs。
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

pom引入jar包。Swagger获取api后是以json形式返回数据给Swagger ui,这里需要引入jackson的相关包

    <!--swagger-->
    <dependency>
      <groupId>com.mangofactory</groupId>
      <artifactId>swagger-springmvc</artifactId>
      <version>1.0.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.4.4</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.4.4</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.4.4</version>
    </dependency>

建config包,然后新建SwaggerConfig配置类

package org.seckill.config;

/**
 * Created by jiangcy on 2018/1/23.
 */

import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@EnableSwagger
@EnableWebMvc
public class SwaggerConfig {
    private SpringSwaggerConfig springSwaggerConfig;
    /**
     * Required to autowire SpringSwaggerConfig
     */
    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)
    {
        this.springSwaggerConfig = springSwaggerConfig;
    }
    /**
     * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc
     * framework - allowing for multiple swagger groups i.e. same code base
     * multiple swagger resource listings.
     */
    @Bean
    public SwaggerSpringMvcPlugin customImplementation()
    {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                .apiInfo(apiInfo())
                .includePatterns(".*?");

    }

    private ApiInfo apiInfo()
    {
        ApiInfo apiInfo = new ApiInfo(
                "Swagger测试",
                "测试查询用户",
                "开发者: Changxin L",
                "348686686@gmail.com",
                "MIT License",
                "/LICENSE");
        return apiInfo;
    }
}

然后我们在配置类里面配置一下静态资源的映射路径。
高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

    <!-- 将 springSwaggerConfig加载到spring容器 -->
    <bean     class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
    <!-- 将自定义的swagger配置类加载到spring容器 -->
    <bean class="org.seckill.config.SwaggerConfig" />
    
    <mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/"/>

    <!-- 定义无需Controller的url<->view直接映射 -->
    <mvc:view-controller path="/" view-name="../WEB-INF/swagger/index"/>

swagger 效果

如果上述操作准确无误的话,那么你将会看到如下界面:

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

AdminLTE 以其他

AdminLTE 引入就更简单了,不需要jar包,只需要引入静态资源就可以了。
所以就不做累述了,需要的可以clone项目来看下。

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

高并发秒杀系统API之SSM集成swagger与AdminLTE _ JavaClub全栈架构师技术笔记

github

github地址:https://github.com/Jimmey-Jiang/seckill

作者:耕云种月
来源链接:https://www.cnblogs.com/anyushengcms/p/8350973.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/17452.html

标签: Swagger
分享给朋友:

“高并发秒杀系统API之SSM集成swagger与AdminLTE” 的相关文章

SpringBoot整合Swagger2

SpringBoot整合Swagger2

相信各位在公司写API文档数量应该不少,当然如果你还处在自己一个人开发前后台的年代,当我没说,如今为了前后台更好的对接,还是为了以后交接方便,都有要求写API文档。   手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送...

Maven + SpringMVC项目集成Swagger

Maven + SpringMVC项目集成Swagger

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。 作用:  接...

SpringBoot整合Swagger3生成接口文档

SpringBoot整合Swagger3生成接口文档

  前后端分离的项目,接口文档的存在十分重要。与手动编写接口文档不同,swagger是一个自动生成接口文档的工具,在需求不断变更的开发环境下,手动编写文档的效率实在太低。与新版的swagger3相比swagger2配置更少,使用更加方便。 一、pom文件中引入Swagger3依赖...

springboot成神之——swagger文档自动生成工具

springboot成神之——swagger文档自动生成工具

本文讲解如何在spring-boot中使用swagger文档自动生成工具 目录结构 说明 依赖 SwaggerConfig 开启api界面 JSR 303注释信息 Swagger核...

替换swagger-ui,选择款神器—knife4j

替换swagger-ui,选择款神器—knife4j

    一、介绍 knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案(在非Java项目中也提供了前端UI的增强解决方案),前身是swagger-bootstrap-ui,取名knife4j是希望她能像一把匕首一样小...

使用dropwizard(5)--加入swagger

使用dropwizard(5)--加入swagger

前言 Swagger已经成API service的规范了,本处在dropwizard中简单集成Swagger. Demo source https://github.com/Ryan-Miao/l4dropwizard 本文是基于dropwizard入...

浅析如何在Nancy中使用Swagger生成API文档

浅析如何在Nancy中使用Swagger生成API文档

介绍了如何在Nancy中使用Swagger生成一份API文档,并且处理在安全验证方面遇到的问题。 前言 上一篇博客介绍了使用Nancy框架内部的方法来创建了一个简单到不能再简单的Document。但是还有许许多多的不足。 为了能稍微完善一下这个Docume...

Swagger实现API文档功能

Swagger实现API文档功能

介绍: wagger也称为Open API,Swagger从API文档中手动完成工作,并提供一系列用于生成,可视化和维护API文档的解决方案。简单的说就是一款让你更好的书写API文档的框架。 我们为什么选择swagger,现在的网站开发结果越来越注重前后端的分离,比如以前的...

Visual Studio 2017 and Swagger: Building and Documenting Web APIs

Visual Studio 2017 and Swagger: Building and Documenting Web APIs

Swagger是一种与技术无关的标准,允许发现REST API,为任何软件提供了一种识别REST API功能的方法。 这比看起来更重要:这是一个改变游戏技术的方式,就像Web服务描述语言一样WSDL(Web Service Description Language)一样。...

基于 abp vNext 和 .NET Core 开发博客项目

基于 abp vNext 和 .NET Core 开发博客项目

系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 基于 abp vNext 和 .NET Core 开...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。