前后端联调
前端先传给nginx再传给后端服务器
反向代理
我们可以看到前端和后端的访问地址不一样,那么怎么实现进行访问的呢?
我们是通过一种反向代理技术来实现的
利用nginx反向代理来实现前后端联调
下面是如何在我们的idea项目中使用nginx反向代理技术
如下图在我们的conf配置文件写入这样的代码就行了
,可以看懂代码,前端发来的请求路径含有api,然后就会自动转换为/admin,这样就和我们后端的地址是一样的了,从而实现了前后端联调
反向代理的优点
如下图
主要是负载均衡
下面是负载均衡的一些相关策略
登陆加密(MD5)
我们不想别人看到我们的sql表上面的密码,就能知道我们的密码,所以我们为了确保安全性,我们是通过MD5对密码进行加密
MD5加密的特点是,不可逆,也就是别人得到了我们的数据库里的密码,看到的一段是被MD5加密后的字符串,也不能被逆向解密出来,那样登陆的时候就不知道密码了
为了我们登陆的时候与数据库里的MD5字符串能比对成功
所以我们就要在登陆操作那里多加一个对传来的密码进行MD5加密操作,然后再和数据库进行比对,就能安全的登陆了
只需在service层那里进行这样一个操作就行
password=DigestUtils.md5DigestAsHex(password.getBytes());
记得把数据里的密码改为MD5后的密码
swagger
我们利用这个技术来实现接口文档的编写
反正就是我们编写的数据会帮我们自动生成一个接口文档
通过一个指定的地址来访问
下面是使用方式
第一步导入maven依赖
第二步在配置类里导入相关配置
第三步设置静态资源映射
代码如下
写在server(不是service)总包下的的config包里面
代码如下
@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的一些常见注解
这些注解就是起标注作用的,这代码里写了这些注解,括号里面写上的字符串,会在我们生成的接口文档那里体现出来
下面就是在代码上如何使用这些注解
很简单,直接看图就能理解