服务器软件开发
大浪淘沙胡
设计过产品,当过码农,受过苦,受过累,有过成绩,也有失败,俱往矣,做一个打不死的小强。
展开
-
"Plugin execution not covered by lifecycle configuration"错误处理
提示错误Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-resources-plugin:2.6:resources (execution: default-resources, phase: process-resources) pom.xml解决方法:wi...原创 2020-04-20 17:47:49 · 367 阅读 · 0 评论 -
Lombok介绍和应用
1、Lombok是什么 Lombok是一个可通过简单的注解简化消除一些必须但显得臃肿的java代码的工具。比如新建一个类,通常需要手动建立getter和setter方法,构造函数等,Lombok的作用就是省去创建这些代码的麻烦,在编译代码时自动生成这些方法。 虽然有的ID工具自带生成这些方法的功能,但使用Lombok会使代码更简洁,使用更方便。2、Lombok安装2.1、网络资源...原创 2020-01-17 08:55:55 · 160 阅读 · 0 评论 -
HTTP请求和响应格式介绍
1、HTTP请求HTTP请求由请求行、消息报头、及请求正文组成;2、请求行格式Method Request-URI HTTP-Version CRLF其中Method为请求方法,Request-URI为统一资源标识, HTTP-Version为HTTP的版本, CRLF为回车换行(/r/n)。Method方法有GET、POST等,具体如下:GET 请求获取由Request-URI所...原创 2020-01-16 10:52:31 · 2228 阅读 · 0 评论 -
HttpClient介绍
1、简介 HttpClient(下载地址http://hc.apache.org/downloads.cgi)用来提供高效、最新、功能丰富的支持http协议的客户端编程工具包,在很多的项目中应用。2、特性(1)、基于标准、纯净的java语言。实现了Http1.0和Http1.1;(2)、以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, H...原创 2020-01-16 09:58:54 · 173 阅读 · 0 评论 -
前后端分离情况下pdf文件在浏览器中预览的实现
在浏览器上直接打开pdf文件,页面标题与文件不符,经如下处理,问题得到解决;1、Vue文件发送请求window.open(HOST + '/file/preview/' + this.userId+'?param1=' + param1 +'¶m2=' +param2)2、Springboot后台响应请求@GetMapping("/files/{userId}?param1={...原创 2020-01-15 21:37:38 · 3026 阅读 · 1 评论 -
日期时间处理之Joda-Time库
在java中日期时间处理是很常见的需求,基础工具类提供Date和Calendar类,但使用起来并不方便,于是诞生了Joda-Time日期时间处理专用库,虽然Java 8中新增java.time处理日期时间,但仍需Threeten第三方库弥补Java 8的不足。1、选择工具库的考量依据 (1)、功能是否全面,能够满足生产需要,并能解决该领域中的绝大多数的问题; (2)、是否是主流工具...原创 2020-01-15 09:33:06 · 825 阅读 · 0 评论 -
springBoot中修改上传文件大小限制
1、问题当上传文件大小超过1MB,后台会提示错误:The field file exceeds its maximum permitted size of 1048576 bytes2、解决方法修改上传文件大小限制(1)、在application.properties中添加文件配置spring.servlet.multipart.max-file-size = 10MBspring.se...原创 2020-01-14 14:21:46 · 1112 阅读 · 0 评论 -
commons-fileupload.jar文件上传基础知识
1、文件上传响应方式可向服务器上传文本数据,但比较麻烦,而且无法上传图片资源。如果文件数据比较大,或非文本数据,一般使用文件上传。文件上传就是将客户端资源通过网络传递给服务器,其本质就是IO流的操作,客户端发送数据流,服务端通过流读取数据,对数据进行解析得到上传文件的内容,然后保存在服务器端。2、数据处理2.1客户端(1)、使用post方法(method=“post”),因提交的数据会比较...原创 2020-01-14 09:19:26 · 1673 阅读 · 0 评论 -
前后端分离下载文件的方法
1、form表单下载文件function downloadFile(url){ var form=$("<form>");//定义form表单,通过表单发送请求 form.attr("style","display:none");//设置为不显示 form.attr("target",""); form.attr("method","g...原创 2020-01-14 08:35:31 · 1271 阅读 · 0 评论 -
Mybatis动态查询和动态更新
以下实例假定项目已经建成,只对部分文件(用户信息)进行更新。1.动态查询1.1使用<where>标签1、修改UserMapper.xml,具体如下:<select id="findUserByInfo" parameterType="Map" resultMap="UserResult"> select * from user ...原创 2020-01-13 08:12:11 · 1038 阅读 · 0 评论 -
mybatis-plus实现分页条件查询
说明:以查找35岁以上的用户为例,采用springboot实现。1、创建user数据表user_Idusernameage2、创建User实体类(略)3、创建UserService服务(略)4、创建Controller相关功能代码如下:User user = new User();Page<User> page = new Page<User>...原创 2019-11-12 17:33:39 · 1492 阅读 · 0 评论 -
Unparseable date: "Sat Oct 19 2019 11:13:57 GMT+0800 (中国标准时间)"
1.基本思路在前端对请求的日期时间数据进行格式转换,在后端将参数转换成对应格式。2、前端转换程序dateConversion: function (dateValue) { let date = new Date(dateValue) let seperator1 = '-' let seperator2 = ':' let month = date.ge...原创 2019-10-19 16:52:39 · 1489 阅读 · 2 评论 -
字符串是否为空的判别写法
1、判断字符串为空的写法if(str==null || str.equals("")){}其中str为字符串;先判断是不是对象,如果是再判断是否为空字符串;2、判断字符串不为空的写法if(str!=null && str.length()!=0){}其中str为字符串;先确保不是null,然后再判断长度是否不为0....原创 2019-10-18 15:38:31 · 463 阅读 · 0 评论 -
数据库连接池及其配置
1、数据库连接池介绍 数据库连接是一种有限的昂贵资源,建立一个数据库连接需要消耗大量的系统资源,频繁创建数据库连接会大大消弱系统性能,鉴于此,并不是每个用户都创建并独占一个数据库连接,而是通过连接池对连接进行管理。 数据库连接池负责分配、管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个,明显提高对数据库操作的性能。 ...原创 2019-08-28 13:31:38 · 1432 阅读 · 0 评论 -
大型网站系统架构的演化介绍
大型网站系统架构的演化1、最初的网站架构在一台服务器上部署应用程序、数据库、及文件。2、应用、数据、文件独立将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。3、利用缓存改善网站性能大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。将应用程序、数...原创 2019-08-22 16:46:54 · 129 阅读 · 0 评论 -
分布式MySQL集群介绍
1、分布式MySQL集群MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。数据更新使用读已提交隔离级别(read-committedisolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phasedcommit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。无共享的对等节点使得某台服务...原创 2019-08-22 15:25:51 · 380 阅读 · 0 评论 -
大型网站系统设计应考虑的问题
大型网站系统设计应考虑的问题1、服务器软件架构:集中服务、微服务、云服务;2、部署方案:分布式、集群部署;3、均衡负载方案Nginx反向代理实现均衡负载、HAProxy+Keepalived双机高可用均衡负载方案;4、缓存方案redis轻量级缓存方案、memcached5、搜索方案搜索引擎Sphinx,千万级数据检索,没秒10MB/s,Sphinx和MySQL是基于数据库的全文引擎...原创 2019-08-22 15:18:01 · 312 阅读 · 0 评论 -
服务器分布式部署和集群部署的区别
服务器分布式部署和集群部署的区别1、分布式部署分布式是以缩短单个任务的执行时间来提升效率的;分布式是将不同的业务分布在不同的地方;2、集群部署集群是将几台服务器集中在一起,实现同一业务;集群是通过提高单位时间内执行的任务数来提高效率;集群主要分为高可用集群(High Availability Cluster)、负载均衡集群(Load Balance Cluster,nginx即可实现)、科...原创 2019-08-22 15:09:34 · 26418 阅读 · 1 评论 -
MySQL总页计算及分页查询
MySQL总页计算及分页查询1、查询总记录数SELECT COUNT(*) FROM 表名2、总页数计算公式int totalPageNum = (totalRecord +pageSize - 1) / pageSize;其中,totalRecord是总记录数;pageSize是一页分多少条记录。3、前端UI分页插件显示分页页码;4、分页查询select * from 表名 li...原创 2019-08-12 09:53:40 · 1454 阅读 · 1 评论 -
Shiro基本应有介绍
1.Shiro作用(1)、验证用户(2)、访问控制(角色、权限管理)(3)、在任何环境下使用Session API(4)、可用多个数据源(譬如一个是oracle数据库,一个是mysql数据库)(5)、单点登录(SSO);(5)、Remember Me服务 ,类似购物车的功能,shiro官方建议开启。2.Shiro主要组成(1)、身份验证(Authentication),也就是登陆;...原创 2019-08-14 17:48:35 · 171 阅读 · 0 评论 -
"Address already in use: bind端口占用"问题解决办法
“Address already in use: bind端口占用"问题解决办法方法1:1、启动cmd,执行命令"netstat -ano”,查看端口的使用情况;2、通过查到的PID,在任务管理器中找到占用端口的程序,并结束该进程;方法2:1、启动cmd,执行命令"netstat -ano|findstr 8080"(假设端口为8080),查询端口的进程号;2、执行命令“taskkil...原创 2019-08-09 13:50:29 · 2425 阅读 · 0 评论 -
xshell应用命令
xshell应用1、打开时运行,关闭后不运行;java -jar XX.jar2、关闭后继续运行nohup java -jar XXX.jar &3、查看后台启动jobs原创 2019-04-04 14:59:58 · 300 阅读 · 0 评论 -
实现自增型业务编号
实现自增型业务编号1、创建数据库(用于存储编号最大值)maxSerialNum: 当前业务编号最大值date:修改日期2、编写业务编号产生程序public class MaterialEncode{@Autowiredprivate SerialNumberService serialNumberService;private static final AtomicInteger ...原创 2019-02-13 21:43:00 · 717 阅读 · 0 评论 -
阿里云ECS服务器CentOS7上安装MySql服务
1.确保服务器系统处于最新状态(可选)[root@localhost ~]# yum -y update如果显示以下内容说明已经更新完成Replaced:grub2.x86_64 1:2.02-0.64.el7.centos grub2-tools.x86_64 1:2.02-0.64.el7.centosComplete!2.重启服务器(可选)[root@localhost ~...原创 2019-01-30 16:37:04 · 256 阅读 · 0 评论 -
在Tomcat服务器部署jar包
在Tomcat服务器部署jar包1、输出jar包在eclipse环境下,进入Run Configuration界面,在Maven Build下选择demo,将Goals的内容改成package2、将jar包部署到服务器上将jar包拷贝到\apache-tomcat-7.0.90\webapps3、启动Tomcat服务器./startup.sh4、运行应用服务器java -jar ...原创 2019-01-31 16:44:33 · 53541 阅读 · 13 评论 -
如何实现前端和后台之间的数据交换
1. 对vue项目进行配置(前端以Vue为例)config/index.js中配置proxyTable: { '/user':{ target:'http://127.0.0.1:9001', pathRewrite:{ '^/user':'' } } },2、对后台添加CorsConfig(...原创 2019-01-21 16:34:52 · 1593 阅读 · 0 评论 -
mybatis分页查询
分页实现方式有多种,譬如数组、SQL分页、拦截器分页等,本实例借助Mybatis插件进行分页,代码如下:public class UserController {private static Logger logger = LoggerFactory.getLogger(UserController.class); @AutowiredUserService userService;@P...原创 2019-01-14 17:58:45 · 146 阅读 · 0 评论 -
token验证流程及分类
1、token验证基本流程基于token的身份验证方法,在服务端不需要存储用户的登陆记录,基本流程如下:客户端使用用户名和密码请求登陆;服务端收到请求,验证用户名与密码;验证成功,服务端会签发一个token,把这个token发送给客户端;客户端收到token,把它存储起来(Cookie、Loacal Storage、session storage);客户端每次向服务端请求资源的时候,需...原创 2018-12-17 21:41:17 · 827 阅读 · 0 评论 -
如何保存token-localStorage存储
1、原理原理是通过vue-router的beforeEach钩子,在每次路由到一个地址的时候先判断该路由是否携带了meta信息,且该信息中的requireAuth是否为true,如果为true表示该路由是需要身份验证的。则去localStorage找token,若token不存在则表示用户无认证,去登录请求token。若token存在则拿着token去请求。2、token保存login.vu...原创 2018-12-03 06:45:34 · 17805 阅读 · 0 评论 -
“el-dialog弹出框被遮盖层挡住”解决办法
“el-dialog弹出框被遮盖层挡住”解决办法在el-dialog标签里添加 :modal-append-to-body='false'原创 2019-04-06 09:02:49 · 4133 阅读 · 0 评论 -
使用slf4j 进行日志记录
1、引入slf4j依赖(以maven项目为例)<dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.2...原创 2019-05-14 22:15:22 · 2302 阅读 · 0 评论 -
短信验证码实现过程
短信验证码实现过程:1、通过程序随机生成数字,通常是4-6位数字,或者使用字母随机产生。生成6位验证码demo:public String getRandNum(int charCount){ String charvalue=“”; For(int i=0;i<charCount;i++){ char c=(char)(randomInt(0,10)+'0'); ...原创 2019-07-23 17:23:37 · 619 阅读 · 0 评论 -
Java中关于定位查询采用通信方式的探讨
1.问题描述当前逻辑(采用异步通信)业务服务器向通信服务器发送定位命令,通信服务器立即回复,并向终端设备发定位命令,终端设备收到后回复通信服务器,通信服务器收到后将结果上报业务服务器。期望逻辑(才有同步通信)业务服务器向通信服务器发送定位命令,通信服务器不回复,向终端设备发定位命令,终端设备收到后回复通信服务器,通信服务器收到后再回复业务服务器。2.同步和异步通信比较2.1同步方式...原创 2019-06-27 10:02:58 · 108 阅读 · 0 评论 -
Spring中http请求之RestTemplate
1、RestTemplate同步请求(1)、getForEntity@RequestMapping("/getDemo")public String getDemo(){ url="http://localhost:8080/" ResponseEntity<String> responseEntity=restTemplate.getForEntity(url...原创 2019-06-26 16:37:25 · 422 阅读 · 0 评论 -
Nginx安装及启动
Nginx安装1、下载组件[root@localhost var]# wget http://nginx.org/download/nginx-1.16.0.tar.gz[root@localhost var]# wget http://www.openssl.org/source/openssl-fips-2.0.10.tar.gz[root@localhost var]# wget h...原创 2019-06-17 08:39:32 · 311 阅读 · 0 评论 -
构建keepalive+nginx集群
构建keepalive+nginx集群1、软件安装1.1、准备两台机器A机器:192.168.232.132B机器:192.168.232.131A级器作为master,B机器作为backup1.2、两台机器都安装keepalivedA机器[root@aaa-01 ~]# yum install -y keepalivedB机器[root@bbb-01 ~]# yum inst...原创 2019-05-24 16:19:32 · 540 阅读 · 2 评论 -
服务器软件部署过程及问题解决方法
服务器软件部署过程1、查询进程ps aux 或 ps -ef2、杀死进程kill -9 PID3、拷贝文件后台文件:xxx.jar前端文件:dist文件夹4、运行调试java -jar xxx.jar5、调试完毕后,让进程长期运行nohup java -jar xxx.jar6、测试如果页面没更新,可用以下方法解决问题1、重启tomcat服务器./startup.sh...原创 2019-05-11 11:31:01 · 775 阅读 · 0 评论 -
Web服务器集群搭建
Web服务器集群搭建1、需求分析1.1、整体需求搭建一个高可用的网站服务器集群,能承受高并发请求,能抵御一般的网络攻击,任何一台服务器的退服不影响整个集群的运作,并且能对各服务器的运行情况作出实时监控。1.2、详细需求Web主服务器(Centos1 Nginx+Keepalive NFS server):Eth0(192.168.48.139),Eth1(10.0.0.1);Web备用...原创 2019-05-24 15:31:10 · 7406 阅读 · 0 评论 -
将多个项目(使用不同端口号)部署在一个Tomcat服务器上
本文以vue前端项目为例,名称和端口号用户可根据需要设置,保持一致即可。1、修改server.xml文件(文件路径:C:\Program Files\Apache Software Foundation\conf)(1)、新增Service节点:复制并粘贴新节点;(2)、删除新节点下的Connector属性,即:(3)、将新增Service节点的name属性改为Catalina1;(4)...原创 2018-11-30 11:20:31 · 1074 阅读 · 0 评论