一、概述

编写目的

这个项目基本把电商的业务和平台都完整的展示出来了,很多项目只是展示一个后台管理,但是,那并不是完整的企业级项目,而这个lilishop却是一个完整的项目,并且进行了开源代码,在这里要对其做出的贡献表示感谢.
由于本系统的文档不够完善,缺少简单的部署流程,使得很多新人,或没有接触这个系统的人,很难简单快捷的实现,快速部署这个系统,同时,能够快速搭建,学习起来的状况,这也是目前国内开源的一大弊病,明明做的项目不差,但是由于文档缺乏,配置繁琐,导致很难快速上手,快速开发,快速学习,快速使用,所以,特此撰写此文章,此文章为原创设计,拒绝抄袭,如有转载,请注明出处.

服务器部署

由于笔者是一个开发人员,所以部署主要以开发的部署到本地的情况为主,文章这是范例,实际的问题,还需要自身学习百度功能,和自身对于一门技术的理解,希望大家努力学习,争取自己领悟部署的方法,本文部署主要选取常用的windows系统作为主要的部署环境,希望大家提高自身的部署能力.

二、基本构建

构建工具(参考文献,其他版本安装流程基本一样)

三、Git 导入编译器

四、模块描述浅析

  • 文件路径: lilishop/pom.ml

五、配置文档

  • 本文暂时以商城主页的项目为主教程,其他的模块一样,待自行举一反三.

1.注释配置文件

  • 注释以上三个模块的如下代码,这里的代码含义就是忽略这些接口的访问,不注释的话,以下接口无法访问.启动包含swagger的访问.

# 忽略鉴权url
#ignored:
#  urls:
#    - /editor-app/**
#    - /actuator**
#    - /actuator/**
#    - /MP_verify_qSyvBPhDsPdxvOhC.txt
#    - /weixin/**
#    - /source/**
#    - /buyer/mini-program/**
#    - /buyer/cashier/**
#    - /buyer/pageData/**
#    - /buyer/article/**
#    - /buyer/goods/**
#    - /buyer/category/**
#    - /buyer/shop/**
#    - /buyer/connect/**
#    - /buyer/members/smsLogin
#    - /buyer/members/refresh/*
#    - /buyer/members/refresh**
#    - /buyer/promotion/pintuan
#    - /buyer/promotion/seckill
#    - /buyer/memberEvaluation/**/goodsEvaluation
#    - /buyer/memberEvaluation/**/evaluationNumber
#    - /store/login/**
#    - /manager/user/login
#    - /manager/user/refresh/**
#    - /druid/**
#    - /swagger-ui.html
#    - /doc.html
#    - /swagger-resources/**
#    - /swagger/**
#    - /webjars/**
#    - /v2/api-docs
#    - /configuration/ui
#    - /boot-admin
#    - /**/*.js
#    - /**/*.css
#    - /**/*.png
#    - /**/*.ico


2.添加配置

  • 由于本项目采用的是比较新的技术,叫做knife4j,所以配置要偏向于knife4j和swagger的配置,引入包位置

2022IDEA配置启动lilishop的swagger展示-LMLPHP

  • 版本修改位置

2022IDEA配置启动lilishop的swagger展示-LMLPHP

  • 在需要修改的模块,添加代码

2022IDEA配置启动lilishop的swagger展示-LMLPHP


spring:
    mvc:
      view:
        prefix: /
        suffix: .html
      freemarker:
        check-template-location: false
      thymeleaf:
        check-template-location: false

3.暂时关闭权限

  • 由于除了忽略以外,本项目还开起了security的权限,如果不关闭这个权限,那么还是无法访问项目的swagger.
  • 由于项目比较复杂,为了达到简单高效的目的,第一步注释代码BuyerAuthenticationFilter,(不注释就算解开了权限,最后,还需要账户密码登陆,暂时没找到这个的登陆账号密码)

2022IDEA配置启动lilishop的swagger展示-LMLPHP

  • 修改代码BuyerSecurityConfig,使其跟common-api下的权限一致.

2022IDEA配置启动lilishop的swagger展示-LMLPHP



package cn.lili.security;

import cn.lili.cache.Cache;
import cn.lili.common.security.CustomAccessDeniedHandler;
import cn.lili.common.utils.SpringContextUtil;
import cn.lili.common.properties.IgnoredUrlsProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.web.cors.CorsConfigurationSource;

/**
 * spring Security 核心配置类 Buyer安全配置中心
 *
 * @author Chopper
 * @version v4.0
 * @since 2020/11/14 16:20
 */

@Slf4j
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class BuyerSecurityConfig extends WebSecurityConfigurerAdapter {

    /**
     * 忽略验权配置
     */
    @Autowired
    private IgnoredUrlsProperties ignoredUrlsProperties;

    /**
     * spring security -》 权限不足处理
     */
    @Autowired
    private CustomAccessDeniedHandler accessDeniedHandler;

    @Autowired
    private Cache<String> cache;

    @Autowired
    private CorsConfigurationSource corsConfigurationSource;

    @Override
    protected void configure(HttpSecurity http) throws Exception {




  // 注释这里的过滤权限代码

//        ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = http
//                .authorizeRequests();
//        //配置的url 不需要授权
//        for (String url : ignoredUrlsProperties.getUrls()) {
//            registry.antMatchers(url).permitAll();
//        }
//        registry
//                .and()
//                //禁止网页iframe
//                .headers().frameOptions().disable()
//                .and()
//                .logout()
//                .permitAll()
//                .and()
//                .authorizeRequests()
//                //任何请求
//                .anyRequest()
//                //需要身份认证
//                .authenticated()
//                .and()
//                //允许跨域
//                .cors().configurationSource((CorsConfigurationSource) SpringContextUtil.getBean("corsConfigurationSource")).and()
//                //关闭跨站请求防护
//                .csrf().disable()
//                //前后端分离采用JWT 不需要session
//                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
//                .and()
//                //自定义权限拒绝处理类
//                .exceptionHandling().accessDeniedHandler(accessDeniedHandler)
//                .and()
//                //添加JWT认证过滤器
//                .addFilter(new BuyerAuthenticationFilter(authenticationManager(), cache));


        // 粘贴这里的不需要权限访问代码
        ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry registry = http
                .authorizeRequests();
        registry
                .and()
                //禁止网页iframe
                .headers().frameOptions().disable()
                .and()
                .authorizeRequests()
                //任何请求
                .anyRequest()
                //需要身份认证
                .permitAll()
                .and()
                //允许跨域
                .cors().configurationSource(corsConfigurationSource).and()
                //关闭跨站请求防护
                .csrf().disable();




    }


}


4.浏览器测试访问

2022IDEA配置启动lilishop的swagger展示-LMLPHP

2022IDEA配置启动lilishop的swagger展示-LMLPHP

  • http://localhost:8888/doc.html,这是knife4j特有的访问方式,这里没有配置文档和接口文档,所以,你也无法用这个进行测试,需要进行测试就要自己添加注释,详细的knife4j问题请看相关推荐.

2022IDEA配置启动lilishop的swagger展示-LMLPHP

5.其他需要修改模块

  • 步骤与上述一样,本博主相信你可以自行修改成功,加油,看好你!

六、参考文献

knife4j只用此插件的最简洁开发方式

Knife4j添加lombok及注解初探

Knife4j 注解详谈

结语

呕心沥血,爆肝一个星期(需要写配置环境的文档,还要反复测试,以便为各位看官老爷提供最好的精品文章),希望点赞,收藏,评论,转发,您的支持就是本博主前进的动力,后期将推出完整部署文档,未完待续 .....

十年磨一剑,一剑破万法
03-24 17:09