苍穹外卖——day1

前后端联调

前端先传给nginx再传给后端服务器

反向代理

我们可以看到前端和后端的访问地址不一样,那么怎么实现进行访问的呢?

我们是通过一种反向代理技术来实现的

利用nginx反向代理来实现前后端联调

下面是如何在我们的idea项目中使用nginx反向代理技术

如下图在我们的conf配置文件写入这样的代码就行了

,可以看懂代码,前端发来的请求路径含有api,然后就会自动转换为/admin,这样就和我们后端的地址是一样的了,从而实现了前后端联调

反向代理的优点

如下图

主要是负载均衡

下面是负载均衡的一些相关策略

登陆加密(MD5)

我们不想别人看到我们的sql表上面的密码,就能知道我们的密码,所以我们为了确保安全性,我们是通过MD5对密码进行加密

MD5加密的特点是,不可逆,也就是别人得到了我们的数据库里的密码,看到的一段是被MD5加密后的字符串,也不能被逆向解密出来,那样登陆的时候就不知道密码了

为了我们登陆的时候与数据库里的MD5字符串能比对成功

所以我们就要在登陆操作那里多加一个对传来的密码进行MD5加密操作,然后再和数据库进行比对,就能安全的登陆了

只需在service层那里进行这样一个操作就行

java 复制代码
password=DigestUtils.md5DigestAsHex(password.getBytes());

记得把数据里的密码改为MD5后的密码

swagger

我们利用这个技术来实现接口文档的编写

反正就是我们编写的数据会帮我们自动生成一个接口文档

通过一个指定的地址来访问

下面是使用方式

第一步导入maven依赖

第二步在配置类里导入相关配置

第三步设置静态资源映射

代码如下

写在server(不是service)总包下的的config包里面

代码如下

java 复制代码
@Bean
    public Docket docket() {
        ApiInfo apiInfo = new ApiInfoBuilder()
                .title("苍穹外卖项目接口文档")
                .version("2.0")
                .description("苍穹外卖项目接口文档")
                .build();
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }

    /**
     * 设置静态资源映射
     * @param registry
     */
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }

实现效果图

访问路径是上面的静态资源映射里面的

localhost:8080/doc.html

下面是Swagger的一些常见注解

这些注解就是起标注作用的,这代码里写了这些注解,括号里面写上的字符串,会在我们生成的接口文档那里体现出来

下面就是在代码上如何使用这些注解

很简单,直接看图就能理解

相关推荐
Bingo_BIG3 天前
Java Spring框架:单表的查询、新增、修改、删除、导入、导出
java·spring·前后端
paopaokaka_luck3 天前
智慧社区综合服务小程序(人脸识别、AI问答、Echarts图形化分析)
前端·javascript·spring boot·spring·数据分析·echarts
牧瀬クリスだ3 天前
YAML配置详解:SpringBoot实战指南
java·spring·yml
需要8263 天前
JVM 内存区域与对象创建:一次 GC 从哪来
java·jvm·spring boot·spring·servlet·tomcat
paopaokaka_luck3 天前
考研政治刷题小程序(AI推荐题目、ECharts数据分析、章节练习与专项训练、模拟考试、错题本与收藏夹、学习打卡与目标管理、题库和组卷维护)
前端·javascript·spring boot·spring·数据分析·echarts
步行cgn3 天前
Spring 基于 XML 的自动装配:byType 详解
java·后端·spring
边境悍匪3 天前
蜗牛学苑 Java 智能体学习 Day46|贯穿项目 2 思维导图复盘
java·开发语言·vue.js·学习·spring
步行cgn4 天前
Spring c 命名空间注入详解
java·后端·spring
需要8264 天前
MySQL 索引 B+ 树与“查询为什么变慢了
java·spring boot·spring·spring cloud·tomcat
vx-程序开发4 天前
【计算机毕设】django校园跑腿服务系统83141
java·数据库·vue.js·spring boot·spring·elasticsearch·django