链式编程和nginx
==链式编程==
只要方法返回的是对象本身,那么就可以使用链式编程。
1 | public class Chain { |
append()方法返回的是对象本身,所以可以使用链式编程
1 |
|
==type为XMl
==
XML 全称是
XMLHttpRequest
,是一个XML DOM
的对象,提供了对http
协议的完全访问,可以发送ajax
请求
==swagger==
引入Swagger依赖
创建swagger配置类
若创建的swagger是新建的一个模块(若是在当前模块引入swager依赖,此步可以忽略),则:
将swagger模块的坐标导入依赖到要使用swagger的模块中
在启动类上添加@ComponentScan(basePackages={“swagger配置类所在的包路径”})
假设:swagger所在包:com.atguigu.servicebase
启动类所在包:com.atguigu.service
则配置为@ComponentScan(basePackages = {“com.atguigu”})
swagger生成api文档的常用帮助注解:
@Api(description = “讲师模块”):用在类上
@ApiOperation(value = “讲师列表”):用在方法上
@ApiParam(name = “id”,value = “讲师id”,required = true):用在参数上
@ApiModel:用在类上,标记类是swagger的解析类
- Value:为模型提供备用名称
- description:提供详细的类描述
@ApiModelProperty:用在@A皮Model标记的类的属性上
- Value: 属性简要说明
HelloController
类:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28package com.example.swaggerdemo.controller;
import com.example.swaggerdemo.pojo.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
//@Api(description = "电器模块")
public class HelloController {
public String hello() {
return "hello";
}
public User user() {
return new User();
}
}
==nginx==
正向代理
客户端知道服务器端,通过代理端连接服务器端。代理端代理的是服务器端。
反向代理
所谓反向,是对正向而言的。服务器端知道客户端,客户端不知道服务器端,通过代理端连接服务器端。代理端代理的是客户端。代理对象刚好相反,所以叫反向代理。
==nginx在前后端分离中的应用==
在前后端分离中,nginx作为代理服务器,能够拦截前端请求,将请求转发到后端服务器上,并将后端返回的数据返回给前端。
修改conf
需要在nginx.conf文件中添加如下配置:
1 | server { |
配置说明
1、前端的静态资源存放于/var/www/html路径下,访问时直接使用http://localhost即可。
2、所有API接口都以/api/开头,nginx会将这些请求转发到后端服务器上。
3、proxy_pass配置项指向后端服务器的地址,并使用$host、$remote_addr、$proxy_add_x_forwarded_for等配置项设置代理服务器的请求头。