- 博客(46)
- 收藏
- 关注
原创 java运行groovy工具类
maven依赖(groovy) <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.16</version> </dependency> <depen
2020-09-14 16:52:07 3186
原创 java运行groovy脚本并发问题及解决
一、问题重现之前我们为了解决fullGC问题,使用Map缓存得到的Script对象,达到了类似单例的效果。但是当script运行需要传参时,存在如下问题:高并发下(或极短时间内有两个进程调用同一对象),第一个进程获取到script后,进行参数绑定,但还未执行逻辑代码时,第二个进程又进行参数绑定,则第一个进程则会调用第二个进程的参数说白了就是:线程不安全二、解决线程安全问题,解决起来无非就是:加锁尝试加锁: static Lock lock = new ReentrantLock(); p
2020-09-14 16:48:20 4585
原创 java运行groovy脚本内存问题及解决
一、问题重现工具类:public class GroovyUtil { public static Object engine(String filePath, String fileName, Map<String,Object> variable) { Object result; GroovyScriptEngine engine = null; try{ Binding binding = new Bi
2020-09-14 15:51:53 4819 1
原创 java调用groovy及groovy中如何使用springBean
一、概述Groovy is a multi-faceted language for the Java platform.Apache Groovy是一种强大的、可选的类型化和动态语言,具有静态类型和静态编译功能,用于Java平台,目的在于通过简洁、熟悉和易于学习的语法提高开发人员的工作效率。它可以与任何Java程序顺利集成,并立即向您的应用程序提供强大的功能,包括脚本编写功能、特定于域的语言编写、运行时和编译时元编程以及函数式编程。Groovy是基于java虚拟机的,执行文件可以是简单的脚本片段,也
2020-09-14 15:14:26 3952
原创 java项目分析及调整堆大小
一、Java性能分析工具(JProfiler)JProfiler是一个重量级的JVM监控工具,提供对JVM精确监控,其中堆遍历、CPU剖析、线程剖析看成定位当前系统瓶颈的得力工具。可以统计压测过程中JVM的监控数据,定位性能问题。JProfiler插件安装(idea)直接在IDEA上下载File–Settings–plugins–Browse repositories ,找到jprofiler然后点击安装。JProfiler监控软件安装官方下载地址:https://www.ej-technolo
2020-09-01 13:49:15 12785
原创 各种单点登录方案调研
一、token(key)——json数据(value)方案实现*注意:需要多端使用一个域名/主机登录的处理流程:登录页面提交用户名密码登录成功后生成token。Token相当于原来的jsessionid,字符串,可以使用uuid把用户信息保存到redis。Key就是token,value就是User对象转换成json使用String类型保存Session信息。可以使用“前缀:token”为key设置key的过期时间。模拟Session的过期时间。一般半个小时返回token登录成功前端
2020-09-01 13:43:35 12409
原创 Flowable UI整合前后分离
由项目的请求信息中可以看出,项目时通过json/text的形式来传递数据的,故可以尝试将前端资源分离出来一、将idm、modeler的war包中的/WEB-INF/classes/static内容分别复制到idm、modeler下二、将app-cfg.js中的contextRoot修改为/flowable_+对应的模块名,与静态资源路径区分开文件位置:scripts/app-cfg.jsmodeler同理三、nginx配置server { listen 8081;
2020-09-01 13:34:22 15901
原创 Flowable UI跳过权限验证
一、未登录访问需要验证的接口直接访问一些需要登录验证的接口:二、权限校验分析及处理因为之前搭建项目时,可以看到是权限校验是基于spring security的,故直接去需要security的配置文件:进入可以看到以下代码:其已经将/app/**进行了权限校验的配置故,创建一个与其路径一样、名称一样的文件,将其短路、并且通过所有请求再次测试同时后台报错:java.lang.NullPointerException: null at org.flowable.ui.idm.res
2020-09-01 13:28:20 14310 2
原创 SpringBoot集成Flowable UI
一、引入Flowable UI相关依赖及springboot、mybatis <properties> <java.version>1.8</java.version> <flowable.version>6.4.0</flowable.version> <mybatis-spring-boot>1.3.1</mybatis-spring-boot> </pro
2020-08-28 18:33:39 21628 6
原创 Flowable介绍及部署
一、Flowable 入门介绍官网地址:https://www.flowable.org/Flowable中文文档:http://www.shareniu.com/flowable6.5_zh_document/bpm/index.html下载地址:https://github.com/flowable/flowable-engine/releases/download/flowable-6.4.2/flowable-6.4.2.zipFlowable提供的五个项目:Flowable Model
2020-08-28 18:29:15 20878 3
原创 graphql-java的CRUD及关联查询
一、graphql基本语法:https://graphql.cn/learn/queries/#variables二、graphql-java(graphql java客户端):demo:https://blog.csdn.net/tangyaya8/article/details/105328461扩展:数据关联author对象下存在fans(一对多关联)创建fans对象@Entity@Datapublic class Fans { /** * 主键 */
2020-08-28 18:20:26 13448
原创 yapi期望、mock、自动化测试及idea插件使用
一、项目基本配置1、添加新接口添加子节点2、接口请求/插件安装3、同一个接口,不同参数来区别不同的服务/自动化测试用测试集合来使用# 回归测试,批量测试。配置成功标识 (根据实际情况判断)assert.deepEqual(body.sys_header.status, “true”)导入需要测试的接口添加请求参数4、测试用例成功判断开启test,并书写断言内容,判断接口是否正确执行(此判断需与全局判断同时正确,接口才会验证通过)断言语法:断言脚本公共变
2020-08-28 11:02:57 15876
原创 Kafka消费者手动提交详解及demo
在上一篇 Kafka基础及java客户端使用Kafka使用Java实现数据的生产和消费demo 中介绍如何简单的使用kafka进行数据传输。本篇则重点介绍kafka中的 consumer 消费者的讲解。应用场景在上一篇kafka的consumer消费者,我们使用的是自动提交offset下标。 但是offset下标自动提交其实在很多场景都不适用,因为自动提交是在kafka拉取到数据之后就直接提...
2019-04-10 16:27:16 9251
原创 Kafka基础及java客户端使用
Kafka简介由Scala和Java编写,Kafka是一种高吞吐量的分布式发布订阅消息系统.环境介绍操作系统:centos6.5 kafka:1.0.1 zookeeper:3.4.6术语介绍Broker : Kafka集群包含一个或多个服务器,这种服务器被称为brokerTopic : 每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic...
2019-04-10 15:21:14 20370 2
转载 Kafka安装及运行(Windows及linux)
一、安装JAVA JDK1、下载安装包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意:根据32/64位操作系统下载对应的安装包2、添加系统变量:JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_144二、安装ZooKeep...
2019-04-10 12:04:25 5904
转载 Netty入门教程4——如何实现长连接
文章转自Netty笔记 前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo。关于长连接的背景知识,可以参考《如何使用Socket实现长连接》 一个简单的长连接demo分为以下几个步骤:长连接流程创建连接(Channel)发心跳包发消息,并通知其他用户一段时间...
2019-03-25 14:17:40 4871
转载 Netty入门教程3——Decoder和Encoder
文章转自Netty入门教程 Netty强大的地方,是他能方便的实现自定义协议的网络传输。在上一篇文章中,通过使用Netty封装好的工具类,实现了简单的http服务器。在接下来的文章中,我们看看怎么使用他来搭建自定义协议的服务器。要做到这点,第一步要做的,就是要自定义编码器和解码器,这就是我们这一章主要讲的内容。Netty入门教程——认识N...
2019-03-25 14:11:39 4860
转载 Netty入门教程2——动手搭建HttpServer
文章转自Netty入门教程在上一章中我们认识了netty,他有三大优点:并发高,传输快,封装好。在这一章我们来用Netty搭建一个HttpServer,从实际开发中了解netty框架的一些特性和概念。netty.png认识Http请求在动手写Netty框架之前,我们先要了解http请求的组成,如下图:HTTP request component partsH...
2019-03-25 14:08:19 4760
转载 Netty入门教程——认识Netty
转自Netty入门教程 Netty什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见https://www.ja...
2019-03-25 14:00:13 4736
转载 Ribbon本地负载均衡和Nginx服务器端负载均衡的区别
Ribbon本地负载均衡原理:在调用接口的时候、会在eureka注册中心上获取注册信息服务列表,获取到之后,缓存在jvm本地,使用本地实现rpc远程技术进行调用,即是客户端实现负载均衡 Nginx服务器负载均衡客户端所有请求都会交给nginx,然后由nginx实现转发请求,即负载均衡是由服务...
2019-03-02 00:07:21 5407
原创 算法:动态规划-区间模型之最少添加几个字符使得字符串变成回文串
本文章为算法:动态规划——区间模型例题的解决方案题目:给定一个长度为n(n &amp;lt;= 1000)的字符串A,求插入最少多少个字符使得它变成一个回文串。思路:典型的动态规划区间模型,区间模型的状态表示一般为d[i][j],表示区间[i, j]上的最优解,然后通过状态转移计算出[i+1, j]或者[i, j+1]上的最优解,逐步扩大区间的范围,最终求得[1, len]的最优解。回文串拥有很明...
2019-01-24 18:08:04 8209
转载 算法-动态规划
文章转载自https://blog.csdn.net/u013309870/article/details/75193592动态规划算法的核心理解一个算法就要理解一个算法的核心,动态规划算法的核心是下面的一张图片和一个小故事。A * "1+1+1+1+1+1+1+1 =?" *A : "上面等式的值是多少"B : *计算* "8!"A *在上面等式的左边写上 "1+" *A...
2019-01-24 17:47:47 4836
转载 算法-动态规划-解决01背包问题
一、问题描述:有n 个物品,它们有各自的重量和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?二、总体思路:根据动态规划解题步骤(问题抽象化、建立模型、寻找约束条件、判断是否满足最优性原理、找大问题与小问题的递推关系式、填表、寻找解组成)找出01背包问题的最优解以及解组成,然后编写代码实现;三、动态规划的原理及过程:eg:number=4,capacity=8i...
2019-01-23 16:33:57 5015
原创 spring_task定时任务
第一种:在spring-context文件中配置&lt;task:scheduler id="taskScheduler" pool-size="100" /&gt;&lt;task:scheduled-tasks scheduler="taskScheduler"&gt; &lt;!--
2018-08-07 15:30:54 4777
原创 httpClient发送post请求,带header、body的工具类
自己写一个发送http post请求的工具类,因为需要头部和参数,网上没有合适的,拿出来分享下 只需要传三个参数:地址,头部map,bodymap 另外响应已经将body取出并转成字符串返回maven引入httpClient<!-- httpClient --><dependency> <groupId>org.apache.httpcom...
2018-08-07 15:24:47 43176 2
原创 sql_插入一张表的部分字段需要查询另一张表
插入一张表的数据来自另一张表:INSERT INTO 表A( 字段a, 字段b, 字段c)SELECT 字段a', 字段b', 字段c'FROM 表BWHERE 条件当只是某些字段需要另一张表的数据时:INSERT INTO 表A( 字段a, 字段b, 字段c, 字段d...
2018-07-27 14:48:26 9669 2
原创 sql条件插入
当字段重复时不添加:判断字段是否重复INSERT INTO table(field1, field2, fieldn) SELECT 'field1', 'field2', 'fieldn' FROM DUALWHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)示例/解释:INSERT INTO 表A( ...
2018-07-27 14:41:42 12132
原创 stroage——SAN存储与Linux主机连接
只作为本人开卷考试的参考使用 目的: Linux环境下IP SAN的配置、磁盘管理 创建光盘yum源,编辑 挂载光盘 Yum安装iscsi 开启iscsi 配置iscsi目标器iqn 配置网卡: 配置ip: 发现目标器: 登陆目标器: 查询登陆的目标器: 重启ISCSI: 查询硬盘:
2018-01-14 13:36:25 7184
原创 stroage——SAN存储与WINDOWS主机连接
只作为本人开卷考试的参考使用 目的: Windows环境下IP SAN的配置、磁盘管理 创建存储池: 创建LUN: 创建LUN组: 创建主机: 配置ISCSI: 创建主机组: 创建映射视图: 本地连接,IPV4,高级,添加 ISCSI发起程序: 查看在线: 磁盘管理:
2018-01-14 13:27:48 8960
原创 stroage——SAN存储产品基本功能配置
只作为本人开卷考试的参考使用 目的: 学会配置华为SAN存储设备的高级功能 (HyperSnap;SmartThin;SmartTier;HyperClone;HyperReplication; 其它高级特性) 一、hyperSnap 1.创建硬盘域 2.创建存储池 3.创建LUN 4.创建快照 5.创建LUN组 6.使用快照恢复 选择LUN组,增加对象 选择l
2018-01-14 13:16:15 6142
原创 stroage——SAN存储产品初始化配置
只作本人开卷考试参考使用 目的: 学会在华为SAN存储设备中配置基本IP SAN的方法 1. 创建个硬盘域 2创建存储池 3. 创建4个LUN 4. 创建LUN组 5. 创建主机 6. 创建主机组 7. 创建映射视图
2018-01-14 13:02:28 5494
原创 Android之Intent(数据传递)
Activity分为带过滤器的Activity和不带过滤器的Activity Activity的启动: 带Launcher过滤器的Activity由应用启动时自动启动。 其它的Activity可以调用startActivity方法启动。 startActivity(Intent intent); startActivityForResult(Intent intent,int reques
2017-12-23 20:54:13 5060
原创 Android界面编程之Menu(菜单)
显示菜单的方法:在MainActivity种定义如下方法:public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.mymenu,menu); return super.onCreateOptionsMenu(menu);}
2017-12-22 22:06:59 4906
原创 Android界面编程之Tabhost
使用TabHost的一般步骤: (1)在界面中定义TabHost组件,为该组件定义选项卡内容 (2)Activity继承TabActivity(已经过时,现在用Fragment代替) (3)调用TabActivity的getTabHost()方法获得TabHost对象 (4)通过TabHost对象的方法来创建添加选项卡使用TabHost时有两种情况:一种直接把内容写在TablHost里面,一
2017-12-21 22:34:04 4811
原创 Android界面编程之ViewSwitcher
ViewSwitcher: ViewSwitcher可以用factory提供视图,也可以自己添加,最多只能有两个子视图,且任何时候只能显示其中一个。 如此,可以猜测到该控件的工作过程: (1)为ViewSwitcher指定factory对象 (2)为ViewSwitcher的视图提供布局 (3)让ViewSwitcher翻页(按钮或者触屏滑动) 示例:实现图片切换 布局<Vie
2017-12-21 21:35:25 4804
原创 Android界面编程之SeekBar/RatingBar
SeekBar: SeekBar是进度条。我们使用进度条时,可以使用系统默认的进度条;也可以自定义进度条的图片和滑块图片等。 RatingBar 评分条,与拖动条类似 用星星表示进 度 示例: <ImageView android:id="@+id/imageView2" android:layout_width="300dp" a
2017-12-21 09:18:25 4827
原创 Android界面编程之AdapterViewFlipper
AdapterViewFlipper AdapterViewFlipper属性及方法 应用
2017-12-19 21:25:43 5114
原创 Android界面编程之BaseAdapter
BaseAdapter属于Adapter的子类 BaseAdapter简介 BaseAdapter是实现了ListAdapter和SpinnerAdapter两个接口,当然它也可以直接给ListView和Spinner等UI组件直接提供数据。 相关类结构如下图所示:
2017-12-19 20:59:19 4789
原创 利用SimpleAdapter和AlertDialog实现可变长度的电话簿
利用SimpleAdapter和AlertDialog实现可变长度的电话簿
2017-12-18 23:38:39 4807
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人