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

初衷与整理描述

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

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

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

上手

废话很少说,开整。关于Java开发环境的配置我就不扯了,网上教程一大堆,说下Maven的配置,首先去官网下载http://maven.apache.org/download.cgi git

image.png
image.png
而后是系统变量的配置
image.png
Path配置
image.png

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

Maven 自动生成项目

最后在命令行中输入如下命令:mvn archetype:generate -DgroupId=cn.codingxiaxw.seckill -DartifactId=seckill -Dpackage=cn.codingxiaxw.seckill -Dversion=1.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-webapp 注意下图中的两个回车,开始我就等了很久没有反应,查看项目没有, 这里的回车大概意思是默认DgroupId和DartifactId。 web

image.png

image.png
而后打开上面命令行中的地址,看到以下文件内容说明项目生成成功。

image.png
IDEA打开并不全项目结构以下。
image.png

接下来配置tomcat. spring

image.png

image.png

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

image.png

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

pom.xml与github地址

而后就是配置pom.xml,代码很长我就不贴出来了,直接去个人github pom.xml看吧:https://github.com/Jimmey-Jiang/seckill/blob/master/seckill/pom.xml,这里包含了后面要说的swaggerui 的引入。 json

image.png

基础业务编写

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

image.png

初步效果

编写完效果以下。

image.png

image.png

swagger集成

其余的代码教程上有,最后重点讲一下swagger的集成。 首先固然是去下载swagger,而后引入项目,而后修改index.html里面的url为http://localhost:8080/api-docs。

image.png

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;
    }
}
复制代码

而后咱们在配置类里面配置一下静态资源的映射路径。

image.png

<!-- 将 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 效果

若是上述操做准确无误的话,那么你将会看到以下界面:

image.png

AdminLTE 以其余

AdminLTE 引入就更简单了,不须要jar包,只须要引入静态资源就能够了。 因此就不作累述了,须要的能够clone项目来看下。

image.png

image.png

image.png

image.png

image.png

image.png
相关文章
相关标签/搜索