- 博客(63)
- 资源 (1)
- 收藏
- 关注
原创 Windows安装MYSQL教程
Windows安装MYSQL教程1. 解压mysql文件2.在bin同级目录创建data文件夹3.在bin同级目录创建my.ini配置文件[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]# 设置3306端口port = 3306# 设置mysql的安装目录basedir=E:\java\mysql\mysql-8.0.25-winx64# 设置mysql数据库的数据的存放目录datadir=E:\java\my
2022-03-21 17:00:01
250
原创 JAVA-S7协议连接PLC工具类
1.创建一个Springboot项目2.引入pom文件<dependency> <groupId>com.github.s7connector</groupId> <artifactId>s7connector</artifactId> <version>2.1</version></dependency>3.创建S7Util工具类package com.ximenzi.s7.u
2021-10-19 16:50:58
1603
原创 web上传Excel
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA
2021-10-08 14:53:19
290
原创 S7协议读写西门子
S7协议读写西门子1.创建项目2.导入pom文件 <dependency> <groupId>com.github.s7connector</groupId> <artifactId>s7connector</artifactId> <version>2.1</version> </dependency>3.创建S7类package com.xi
2021-09-30 09:53:14
2539
6
原创 modbus连接PLC
modbus连接PLC创建springboot项目导入pom文件<dependency> <groupId>com.infiniteautomation</groupId> <artifactId>modbus4j</artifactId> <version>${modbus.version}</version></dependency>3.在com.ncty.mo
2021-09-30 09:41:49
1616
原创 Vuex详解
Vuex概述1.组件之间数据共享的方式 父向子传值:v-bind 属性绑定 子向父传值:v-on 事件绑定 兄弟之间组件共享:EventBus 1)$on:接收数据的组件 2)$emit:发送数据的组件2.vuex是实现组件全局状态(数据)管理的机制,可以方便的组件之间数据的共享3.使用vuex统一管理状态的好处 1)能够在vuex集中管理共享数据,易于开发和维护 2)能够高效的实现组件之间的数据共享,提高开发效率 3)存储在vuex之间的数据
2021-07-02 10:19:26
293
1
原创 springcloud+vue前后端分离服务器部署
springcloud+vue前后端分离服务器部署1.springcloud启动所有服务2.安装nginx并自启动(https://blog.youkuaiyun.com/qq_42923536/article/details/118340316)3.进入nginx/conf/nginx.conf server { listen 80; server_name localhost; #charset koi8-r; #access
2021-06-29 17:51:56
1157
原创 nginx在windows下自启动
nginx在windows下自启动1.下载nginx(http://nginx.org/en/download.html)2.下载winsw(https://repo.jenkins-ci.org/artifactory/releases/com/sun/winsw/winsw/2.1.2/)3.将winsw-2.1.2-bin.exe复制到nginx目录下(保证nginx的目录不含空格并不为中文),并重命名为nginx-service.exe4.在nginx目录下新建文件nginx-service
2021-06-29 17:46:42
257
原创 SpringSecurity
SpringSecuritySpring Security 是 Spring 家族中的一个安全管理框架,提供了一整套web应用安全性完整地解决方案,Web应用安全性主要是用户认证和授权,这两个也是SpringSecurity核心功能。在springboot,springcloud出来之前,权限框架一直是shiro的天下,直到springboot出来后,security才得到广泛地应用。最合适的推荐组合: SSM+shiro springboot+securitySpringSecurit
2021-06-22 15:32:33
643
原创 Nacos连接mysql 8.0报错
Nacos连接mysql 8.0报错 首先下载与数据库对应的mysql驱动 下载地址:https://mvnrepository.com/artifact/mysql/mysql-connector-java 进入nacos目录创建plugins\mysql文件夹,将驱动放入,重启nacos即可
2021-06-10 23:30:42
321
原创 将list进行分组显示
将list进行分组显示 isNotComboList.stream().collect(Collectors.groupingBy(HostGoodsVO::getBigDeptId));
2021-06-10 11:01:54
206
原创 java插入排序算法
java插入排序法插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动插入排序算法的描述如下:插入排序是指在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的。现将第n个数插到前面已经排好的序列中,然后找
2021-04-28 13:40:11
299
原创 java选择排序算法
java选择排序:选择排序法是一种不稳定的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置。然后,再从剩余未排序元素中继续寻找最小(大)元素。然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。选择排序算法的描述如下:选择排序法的第一层循环从起始元素开始选到倒数第二个元素,主要是在每次进入的第二层循环之前,将外层循环的下标赋值给临时变量。接下来的第二层循环中,如果发现有比这个最小位置处的元素更小的元素,则将那个更小的元素的下标
2021-04-28 10:42:32
177
原创 java冒泡排序算法
java冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二
2021-04-28 09:38:29
203
原创 sleuth+zipkin
sleuth+zipkin服务链路追踪1.微服务是分布式架构,按业务划分服务单元,分布式一般有很多服务单元,服务单元数量众多,业务复杂,如果出现错误和异常,很难定位,因为一个服务可能调很多服务,所有必须实现分布式链路追踪,跟进看有哪些服务参与和参与顺序,从而达到每个请求清晰可见,很快能定位问题2.span(跨度):基本工作单元3.trace(跟踪):一系列span组成的结构4.Annotation(标注):记录事件,用核心注解定义请求的开始和结束5.导入spring-cloud-starter-s
2021-04-27 16:10:11
249
原创 Sentinel
Sentinel(服务熔断降级限流) 1.引入spring-cloud-starter-alibaba-sentinel 2.下载sentinel服务器 3.配置application地址信息 4.在控制台调整参数【默认所以流控设置保存在内存中,重启失效】 5.想实时监控需每个微服务导入actuator,并配置application暴露所有端口 6.自定义sentinel流控返回数据 7.配置sentinel类 8.限流可以在可视化界面进行控制 9.远程调用出现问题调用的
2021-04-27 16:09:07
146
原创 Seata分布式事务解决方案
Seata分布式事务解决方案1.给每个微服务数据库创建回滚日志表2.下载seata服务器3.导入spring-cloud-starter-alibaba-seate4.启动seata服务器,对应依赖版本5.解压后在conf文件中registry.conf 注册中心配置 修改注册中心6.所有想要用到分布式事务的微服务使用seata DatasourcePraxy 代理自己的数据源 写seata配置7.每个微服务都必须导入seata服务器里的registry和file.conf文件8.fi
2021-04-27 16:03:03
220
原创 分布式事务
分布式事务本地事务: 本地事务调用远程服务,如果远程服务假失败(其实成功了但是没告知调用方成功执行)或远程服务执行完成,下方方法出现异常回滚,导致已执行远程服务无法回滚。 本地事务失效问题:同一对象事务方法互调默认失效。 原因 绕过代理对象。 解决:引入spring-boot-starter-aop @EnableAspectJAutoProxy 开启动态代理 使用动态代理AopContext去互相调用分布式事务: 分布式系统经常出现的异常:机器延机,网络异常,信息丢失等等
2021-04-27 15:57:05
105
原创 幂等性
幂等性用户对同一操作发起的一次请求或者多次请求的结果是一致的 如:用户多次点击按钮,用户回退再提交,微服务互相调用,网络原因,导致失败,触发feign重试机制等 解决方案: 1.token机制,服务端提供发送token接口,服务器保存token在redis,前端发送请求带上token与服务端保存的对于,一致则完成。完成后销毁。 如:验证码 但是会产生删token问题,不管先删token再执行业务,还是后删,因为不是原子操作,会有危险性,所以为了保证原子性,需在redis使用lua脚本
2021-04-27 15:52:01
99
原创 RabbitMQ
RabbitMQRabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛消息中间件 1.提升异步通信,扩展解耦 2.消息代理和目的地 3.目的地形式:队列(queue),主题(topic) 4.点对点式:一个发送者一个接收者 5.发布订阅:发布
2021-04-27 15:51:12
136
原创 redisson分布式锁
Redisson具有内存中数据网格功能的Redis Java客户端基于高性能的异步和无锁Java Redis客户端和Netty框架。 1.可重入锁,A调用B。AB都需要同一锁,此时可重入锁就可以重入,A就可以调用B。不可重入锁时,A调用B将死锁 2.读写锁:写锁是一个排它锁(互斥锁),读写是共享锁,写锁没释放读就必须等待,读锁没释放写锁也需等待 3.闭锁:当所有线程锁都走完了以后,可以使用分布式闭锁机制 4.信号量:可以用来做分布式限流操作 5.缓存数据一致性的问题:
2021-04-27 14:47:43
305
原创 layui 动态加载select并option选中但没有赋值
layui 动态加载select并option选中但没有赋值 var select='dd[lay-value='+data.code+']'; $("#code").siblings("div .layui-form-select").find('dl').find(select).click();
2021-02-25 16:47:50
705
原创 layui 点击行单选框选中该行
layui 点击行单选框选中该行 obj.tr.addClass('layui-table-click').siblings().removeClass('layui-table-click'); obj.tr.find('i[class="layui-anim layui-icon"]').trigger("click");
2021-02-08 15:15:32
703
原创 layui table去掉选择导出csv或excel
table去掉选择导出csv或excel 1.找到layui文件夹下table.js 2.在table.js找到下列这段代码: case "LAYTABLE_EXPORT": r.ie ? l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出", this, { tips: 3 }) : s({ list: function() { //<li data-type="csv">导出到 Csv 文件</
2021-02-08 11:12:35
2246
原创 layui table行点击事件和操作栏事件冲突
table行点击事件和操作栏事件冲突1. 找到layui文件夹下table.js2. 找到table.js代码: i.layBody.on("click", "*[lay-event]", function() { var e = t(this), a = e.parents("tr").eq(0).data("index"); layui.event.call(this, y, "tool(" + p + ")", v.call(this, { event: e.at
2021-02-08 11:07:35
2401
原创 elasticSearch
elasticSearch1.基础概念 全文搜索属于常见的需求,ElasticSearch是全文搜索引擎首选,它可以快速存储,搜索,分析海量数据,底层是lucene,提供REST API接口访问 索引(相当于数据库) 类型(相当于数据表) 文档(相当于一条条的数据)JSON格式2.倒排索引 分词:将整句拆分为单词Docker安装1.下载镜像文件 $ docker pull elasticsearch:7.4.2 $ docker pull kibana:7.4.2 //可视化检索
2021-01-26 15:44:21
106
1
原创 java文件下载
文件下载功能 @RequestMapping("/download") public String downloadFile(HttpServletResponse response) { File file = new File(downloadFilePath); if (file.exists()) { response.setContentType("application/force-download"); response.addHeader("Conten
2020-11-02 10:29:50
190
原创 mybatis-plus
mybatis-plus条件构造器allEq 全部eq(或个别isNull)eq 等于 =ne 不等于gt 大于ge 大于等于lt 小于le 小于等于between 值1和值2notBetween 值不是1和2like 模糊查询notLike 不查询此关键字likeLeft 左模糊查询likeRight 右模糊查询isNull 值为空isNotNull 值不为空in 多个值查询notIn 查询不包含里面的值inSql 字段的多个值
2020-10-30 11:06:05
3560
原创 java常用注解
java常用注解1.Entity层常用注解@JsonInclude@Data@TableName@Null@NotNull@TableId@NotBlank@URL@NotBlank@NotEmpty@Min@Max@TableField2.mapper层常用注解@mapper@Repository3.service层常用注解@service4.controller层常用注解@RestController@Autowired@Resource@Reque
2020-10-23 10:18:01
154
原创 gateway网关统一配置跨域
getway网关统一配置跨域引入pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>创建类CorsConfiguration@Configurationp
2020-10-21 15:57:27
1437
1
原创 springboot自定义校验注解
springboot自定义校验注解1.创建注解类 package com.atguigu.common.valid; import javax.validation.Constraint; import javax.validation.Payload; import java.lang.annotation.*; /** * @author zhuyuanwei * @version 1.0 * @date 2020/10/21 14:29 */ @Documented
2020-10-21 14:55:53
381
原创 maven install sqljdbc4报错
maven install sqljdbc4报错解决方案1.pom.xml <repositories> <repository> <id>clojars</id> <url>http://clojars.org/repo/</url> </repository> </repositories>2.使用maven点clean3.使用maven install打
2020-10-20 11:24:04
540
原创 List转为层级数据
jdk新特性将List转为层级数据@Overridepublic List<Entity> lTree() { List<Entity> entities = baseMapper.selectList(null); List<Entity> level1Menu = entities.stream().filter(Entity -> Entity.getParentCid() == 0 ).map((menu) -&g
2020-09-11 16:11:06
1181
2
原创 Redis
NoSQL特点1.方便扩展(数据之间没有关系,很好扩展)2.大数量高性能(Redis一秒写8万次,读取11万,Nosql的缓存记录级是一种细粒度缓存,性能会比较高)3.数据类型是多样型(不需要事先设计数据库!)4.传统RDBMS(关系型数据库)和NoSQL 传统RDBMS 结构化组织 SQL 数据和关系都存在单独的表中 数据定义语言 严格的一致性 基础的事务等 NoSQL 不仅仅是数据 没有固定的查询语言 赋值对存储,列存储,文档储存,图形数据库(社交关
2020-09-11 15:52:24
281
原创 linux CentOS7安装tomcat
linux CentOS7安装tomcat一.安装JDK 1.获取到root管理员权限 2.$ yum install java-1.8.0-openjdk 3.$ java -version查看是否成功二.安装tomcat 1.获取到root管理员权限 2.$ yum install tomcat 3.$ systemctl status tomcat 查看tomcat服务的状态 4.$ systemctl start tomcat 启动tomcat 5.$ sy
2020-08-21 13:37:26
145
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人