BaseController Java 类库 - 用于构建 RESTful API 的基础类
public class BaseController {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
protected HttpServletRequest request;
protected PageResult pageResult = new PageResult();
public <T> PageResult<T> pageResult(Page<T> page){
pageResult.setRows(page.getContent());
pageResult.setTotal(page.getTotalElements());
return pageResult;
}
public <T> Result<T> successResult(T t){
Result<T> result = new Result<T>();
result.setCode(200);
result.setData(t);
return result;
}
public <T> Result<T> successResult(String msg){
Result<T> result = new Result<T>();
result.setCode(200);
result.setMsg(msg);
return result;
}
public <T> Result<T> successResult(){
Result<T> result = new Result<T>();
result.setCode(200);
return result;
}
public <T> Result<T> failResult(String msg){
Result<T> result = new Result<T>();
result.setCode(500);
result.setMsg(msg);
return result;
}
public <T> Result<T> failResult(){
Result<T> result = new Result<T>();
result.setCode(500);
return result;
}
public <T> Result<T> failResult(int code,String msg){
Result<T> result = new Result<T>();
result.setCode(code);
result.setMsg(msg);
return result;
}
public <T> Result<T> failResult(int code){
Result<T> result = new Result<T>();
result.setCode(code);
return result;
}
public String getIp() {
String ipAddress = request.getHeader('x-forwarded-for');
if (ipAddress == null || ipAddress.length() == 0
|| 'unknown'.equalsIgnoreCase(ipAddress)) {
iipAddress = request.getHeader('Proxy-Client-IP');
}
if (ipAddress == null || ipAddress.length() == 0
|| 'unknown'.equalsIgnoreCase(ipAddress)) {
iipAddress = request.getHeader('WL-Proxy-Client-IP');
}
if (ipAddress == null || ipAddress.length() == 0
|| 'unknown'.equalsIgnoreCase(ipAddress)) {
iipAddress = request.getRemoteAddr();
if (ipAddress.equals('127.0.0.1')
|| ipAddress.equals('0:0:0:0:0:0:0:1')) {
// 根据网卡取本机配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
iipAddress = inet.getHostAddress();
}
}
// 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if (ipAddress != null && ipAddress.length() > 15) { // '***.***.***.***'.length() = 15
if (ipAddress.indexOf(',') > 0) {
iipAddress = ipAddress.substring(0, ipAddress.indexOf(','));
}
}
return ipAddress;
}
原文地址: https://www.cveoy.top/t/topic/likB 著作权归作者所有。请勿转载和采集!