- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 java调用openstack官方restful风格API,通过feign的方式
之前一直使用openstack4j来操作openstack,发现有一些api不支持,比如手动绑定路由的外部接口IP等。下面介绍java调用原生api来实现想要的功能。官网API地址:https://docs.openstack.org/train/api/选择我使用的R版本,首先看认证部分组件keystone的API 查看认...
2020-04-08 15:59:33 1247 2
原创 MyBatis-Plus多数据源配置与事务与批量注意点
1、针对问题1,在使用mp的时候可能执行一些批量的方法,比如saveBatch等,进入saveBatch方法中可以看到在这个方法上默认有@Transactional注解,对于该注解默认使用的都是主库,所以对于从库的一些操作因为无法切换从库产生一些问题。总结一些:对于mp的多数据源的事务或者查询问题首先看每次sql执行时选择的源,另外使用@DS与@Transactional与@DSTransactional三个注解基本可以解决遇到的事务失效等问题。1、发现配置多数据源之后批量执行的方法都走的主库。
2023-07-20 16:57:04 1908
原创 详细讲解int、float与double的区别
最近为了看一下float的精确度仔细看了一下这三种数据在内存中的样子,看了一下别人的博客发现大家对精度都有这不同的定义,我自己也简单画了一下。下面来主要讲解一下int、float与double三者的区别与详解一、int(最简单的一种)int数据类型在内存中占用了4个字节byte(4*8个bit比特)就是32个比特位。第一位代表int的正负,后31位存储数据。当int取最大值时相当于31个1(1*2^30+1*2^29+1*2^28+....+1*2^0)可以转化为有32位切为1其他为0之后再减去
2021-07-26 19:26:47 69891 2
原创 记录一次springboot程序假死问题
项目描述:用户调用接口,接口异步开启任务A,给用户快速返回OK状态,异步任务A中会并发调用1-10000的子任务,当所有子任务结束后,redis发布任务状态,由于1-10000的子任务都有消息发送的需求,中间都会一直发送消息,同时有写库的操作,去掉事务,开启线程。(注:子任务每个执行时间都很慢)这次要求压测项目,但是发现一个很奇怪的现象,就是当请求上去之后,程序就假死了。查看了jstack发现所有的线程都是waiting的状态,查看jmap也没有太大的对象。然后使用visualvm看了一下项目的情况
2020-12-14 18:08:28 1996
原创 springboot动态更改jar里面内容
之前一直改的都是配置文件,使用vim就可以了,class的话基本都是重新打包了。但今天网络不好的情况下传输太慢,只能传class。就去搜了一搜,发现还是有方案的。不过忘了看的谁的博客了,忘大佬不要介意哈,写出来分享一下。springboot动态修改jar里面内容:1、修改配置文件:使用vim语句vim xxx.jar 列表展示所有文件目录,用“?”“\”检索需要修改的文件名称,例如\xxx.yml。键盘N与n是上下跳转与vim命令一样,选中后回车按钮,:wq保存,退出vim即可。重新启动jar
2020-09-12 18:53:38 1242
原创 elasticsearch 查询语句中must与should一起使用,should失效
这是写过最短的一个博客了。当查询语句中包含must与should的时候,发现should失效。那我们就把must改成must_not,逻辑再取反就可以了(无意中发现)。希望能帮到大家,真TM有趣~贴俩真实语句给大家看看把。失败语句:{ "from" : 0, "size" : 100, "query" : { "bool" : { "must" : [ { "range" : { "re..
2020-09-12 18:44:45 2368
原创 centos7详细搭建fastdfs6版本及测试验证
由于fastdfs最新版的稳定性没有验证,这里就搭建了一下6.03的版本。一、环境准备,登录github。https://github.com/happyfish1001、下载fastdfs、libfastcommon、fastdfs-nginx-module内容fastdfs下载6.03版本、libfastcommon下载1.0.41、module下载1.22。在github的tags中进行tar的下载。2、将三个包放在指定目录下,并解压二、编译安装1、首先安装基础环境yum
2020-09-09 17:42:17 1007
原创 java线程池线程超时关闭的两种我认为比较好的方式
问题:比如多线程进行io操作的时候,io的读取在等待的时候(比如telnet某端口时,会长时间等待),线程是不会关闭的,这样导致线程不释放,早晚凉凉。线程池关闭线程的方式有很多,我使用以下两种,简单介绍下,希望能帮助到你。1、编写守护线程,来关闭你的当前线程思路:创建守护线程执行业务操作,编写用户线程超时退出,当用户线程退出后,守护线程将强制退出。代码如下:package BK2020.M08.D27;/** * @description: * @Author: huangsan
2020-08-28 21:45:24 6197
原创 springboot集成线程池,自定义线程池与工厂
根据开发规范不太建议我们自己去创建线程,毕竟创建与销毁都是一种损耗。JDK也提供了几种默认的线程池,这些要么就是最大线程数基本没上限,要么就是阻塞队列没有上限,如果代码有问题很容易造成OOM。所以我们来自己实现一个线程池。springboot集成线程池(超简单四步即成)定义一个线程池:线程池的7大参数可以参考我的上一篇博客。这里我自定义了一个线程工厂类,来制定一个有意义的线程名称,方便出错时回溯。@Configurationpublic class ExecutorServiceConfig
2020-07-30 18:20:46 1357 2
原创 基于oauth2简单实现SSO
在实现SSO之前,先要说一下**@EnableResourceServer与@EnableOAuth2Sso**一般网关处我们使用EnableResourceServer时,可以支持任意的oauth2授权模型,网关声明称资源服务器可以配置ResourceServerConfigurerAdapter,我们可以配置放行的路径等等内容。如果网关处使用EnableOAuth2Sso,在所有请求转发之前就首先要到认证服务器上去校验信息,使用授权码模式,clientid与clientsecret来确认进行o.
2020-06-10 18:54:57 1069
原创 javaweb集成guacamole在html页面中展示
上一篇幅是介绍guacamole的安装,接下来说说使用项目需求,需要在页面中集成远程桌面,要去掉基础认证。整体的方案有两种,都在这里说一下吧。一、不需要guacamole客户端,在自己项目中实现socket通道。与页面进行连接(建议使用第二种)1、环境准备启动guacd服务service guacd start2、在自己的java项目中引入guacamole-common的包,版本与自己的guacd版本一致。 <dependency>
2020-05-28 16:51:29 6010 12
原创 超详细讲解搭建guacamole实现远程桌面
由于项目需求需要一个远程桌面的内容,开始调研了guacamole,毕竟大厂,下面说下集成细节,希望帮助更多小伙伴。官网地址:http://guacamole.apache.org/由于项目不需要Kubernetes与group等内容,只是简单的远程桌面,这里就使用了1.0.0的版本。根据官网地址选择下载客户端与服务端1、环境准备按照API内容,服务端需要依赖更改lib,这里选择yum安装。API地址:http://guacamole.apache.org/doc/gug/-...
2020-05-28 12:46:55 16312 19
原创 mac chrome 提示您的连接不是私密连接,没有继续访问
访问https的一些网站时,由于证书过期或者种种原因提示“您的连接不是私密连接”,如果充分信任改网站可以点开高级,选择继续前往,即可访问。如果点开高级显示“您目前无法访问 xxx,因为此网站发送了 Google Chrome 无法处理的杂乱凭据。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常。”这是将浏览器停留在当前页面,在键盘敲击“thisisunsafe”,即可直接进入当前页面...
2020-04-21 15:06:06 21280 38
原创 mac实现监控转视屏流在html中展示(ffmpeg+rtsp+rtmp)
在mac上实现监控画面集成到html中展示,网上看大家的技术基本都差不多。选了一条使用做多的办法。技术方案:ffmpeg将监控的rtsp转换成rtmp,用阿里云的播放器播放m3u8的格式视频。1、安装nginx,由于之前安装过nginx没有安装rtmp的模块走了不少弯路,最好的办法就是重装一次。如果不安装rtmp的模块,在nginx启动的时候会报错:nginx: [emerg] unkno...
2020-03-26 20:56:45 1153
原创 feign实现文件上传与模拟multipartFile
feign传文件这个还是有很多案例的,随笔记一下1、首先引入feign的依赖和开启@EnableFeignClients这些基础就不用说了2、自定义feign接口,由于调用的是外部服务所以在feignclient上配置url,如果在一个注册中心就不用了呗3、定义feign接口,方法可以使用RequestBody也可以用RequestPart@FeignClient(value =...
2020-03-09 17:37:52 1207
原创 使用springboot支持jsp
由于公司历史原因必须要用jsp,然后就开搞了。。。1、由于springboot项目没有webapp这种目录,我们手动创建一个。再main目录下创建webapp目录。2、在pom中配置,一个是jsp的语法支持,一个是内置的模拟tomcat运行环境。 <dependency> <groupId>javax.servlet<...
2019-09-23 15:31:39 139
原创 mybatisplus插入报错argument type mismatch
今天使用argument type mismatch发现插入的时候报错java.lang.IllegalArgumentException: argument type mismatch。从错误中看是参数的问题,想到我再实体类里面定义了几个在数据库中没有的字段,就使用了@TableField(exist = false)来排除掉这个字段。再跑发现还是这个错误,后来看了下主键的@TableId默...
2019-09-11 17:35:53 5813 3
原创 springcloud学习之zuul网关
zuul网关有路由和过滤器等作用简单使用路由部分功能:路由功能:使用户不直接访问服务,而是访问网关,网关在去eureka上拉去服务然后比对用户请求是要请求哪个服务,然后将请求发送给这个服务。1、在父类工程中创建gateway子工程,用来充当网关部分2、引入相关依赖,引入eureka方便我们在路由中直接指定服务ID<dependency> <group...
2019-09-07 15:19:00 107
原创 springcloud学习之feign声明式服务调用
feign是springcloud的一种服务调用机制,感觉与dubbo很相似,feign封装之后不像一次HTTP请求更像是方法之间的调用。简单使用:1、导入相关依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cl...
2019-09-07 14:57:19 229
原创 springcloud学习之hystrix机制
hystrix解决雪崩问题的手段有两个:线程隔离与服务熔断线程隔离:默认开启线程隔离,为每个服务单独开启自己的thread池。当自己线程池跑满之后不用影响到其他服务的进程。如果没有线程隔离,当一个服务无限制被阻塞的时候,服务器的内存将被占满,会影响到整个项目。服务熔断:当一些服务符合熔断的机制后,该服务会被熔断,其他服务来访问的时候会快速返回我们自定义的fallback方法,防止线程阻塞。...
2019-09-07 14:42:03 112
原创 springcloud学习之ribbon负载均衡
ribbon负责实现服务的负载均衡。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feignribbon简单使用如下:1、引入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId&g...
2019-09-07 14:22:12 128
原创 springcloud学习之eureka注册中心
为了上微服务学习了一下springcloud。本机环境springboot版本2.0.9.RELEASE,springcloud版本Finchley.SR2springcloud众所周知是微服务框架,和dubbo的原理及其一样。所以先从注册中心看起。eureka:springcloud注册中心的一种,相当于dubbo的zookeeper。将服务发布上去,其他服务进行调用。在我们的项目中...
2019-09-06 18:45:14 110
原创 springboot实现多数据源方法二
上一篇博客用aop最终页没实现完美的多数据源。最终只能在所有配置配双份加@Primary注解,用最笨的方法实现了。1、把原先的datasource部分配置配置两份,不能写在一个配置文件中不然告诉你已经存在了。定义两个配置文件单个配置文件(主):package com.boot.config;import com.alibaba.druid.pool.DruidDataSource...
2019-08-21 19:15:51 109
原创 springboot整合mybatis_plus配置多数据源aop方式的问题
刚转springboot还不熟悉,想配置双数据源,看来下网上大家写的一些,很多都是利用AOP的方式去切换数据源。实现思路如下:(最终结果是实现了主从但不支持从库事务,如需完美的下文就帮不到你了,不过里面有好多问题一定是你遇到过的,也可以排排坑)注:如果想要正常的请看下一篇博客springboot实现多数据源方法二。1、在yum中配置自定义的多数据源的url、username、passwor...
2019-08-21 16:01:20 640 1
原创 springboot引入jar依赖的版本和在springmvc中不一样
今天发现一个奇怪的现象,在springmvc中引入以下依赖,查看项目结构会引入他的子依赖如图: <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-l...
2019-08-15 15:13:26 2907
原创 springmvc转springboot之遇到的一些坑
真的是看起来很简单的转变,中间的坑就是不间断。下面说加个典型的希望能帮到你1、依赖项目的配置文件不加载:由于项目之间的依赖,依赖项目中也有@Configuration注释的类,发现依赖过来之后启动项目,这个类并不会被加载执行。最终发现由于启动类的层级不够高,导致依赖项目的config所在包为com.xxx.yyy1,当前项目启动类在的包为com.xxx.yyy2上,只会扫描到yyy2包以下...
2019-08-14 21:34:35 588
原创 springmvc转springboot之使用websocket
前几篇已经将项目转换成springboot了。发现还有websocket忘记配置了,现在简单配置一下保证可以使用先。1、首先引入websocket的依赖 <!-- websocket --> <dependency> <groupId>org.springframework.boot</grou...
2019-08-14 21:24:13 412
原创 springmvc转springboot之项目打包启动
由于公司的项目较为特殊是war引如另一个war的形式我们先说下正常的springboot项目。1、正常的springboot项目,我们platform项目依赖于common项目,将common项目利用maven打成jar包。在platform中引入springboot自带的maven打包插件 <plugin> <gr...
2019-08-14 21:18:34 578
原创 springmvc转springboot之项目配置
上篇我们将所有的mvc配置文件都复制到项目中了,在springboot中项目配置不使用bean注解的方式去配置了而是使用bean类去配置,或者yml的方式(springboot的配置文件)。如果在yum中有提示的我们都可以使用yul的配置方式。1、springboot当中会按照你引入的jar判断你是否使用这个jar然后加载启动器中的内置bean类配置的方式帮你加载这些配置。例如datasour...
2019-08-14 20:58:52 2840
原创 springmvc转springboot之多模块创建
上篇已经将parent工程创建完毕了。下面开始创建其他模块1、鼠标右键父类项目创建new-Module选择maven Project启动器选择spring web starter即可。创建完成后进入pom文件,修改parent为父工程即可。2、创建完成后可以执行代码中的xxxApplication.java测试是否创建成功。能顺利启动就可以了。3、如果是commo...
2019-08-14 19:14:18 521
原创 springmvc转springboot之初始环境配置
公司一个比较原始的项目是springmvc的框架,现在需要上springcloud所以就打算转成springboot的项目,由于之前也是不太了解springboot,所以记录一下项目框架转变的过程和遇到的一些坑。原项目是SSM的和JSP,maven管理包的方式。项目分父工程parent,公共工程common,前台工程platform,和自定义前台xxx。自定义前台xxx是依赖于platfo...
2019-08-14 18:55:56 696
原创 @RequiresPermissions注解失效
今天发现刚搭建的项目引入shiro框架。一切都正常,但是使用注解RequiresPermissions的时候发现无论写什么方法都可以访问到。发现RequiresPermissions失去作用了。项目中无其他报错。最后发现是securityManager如过配置在spring加载之后是不生效的也就是说只能在DispatcherServlet加载的时候加载才可以生效。也就是把<bean c...
2019-08-13 21:56:17 1843
原创 openstack4j创建实例,获取dhcp分配的具体ip
使用openstack4j创建实例可以指定IP或者指定网段然后DHCP分配IP。指定的IP可以直接获取了,那DHCP分配的IP如何获取,看了半天API发现可以通过port去获取。PortListOptions options = PortListOptions.create();options.deviceId(serverId);List<? extends Port> p...
2019-06-12 19:35:47 935 1
原创 elasticsearch的javaAPI简单使用
最近引入es库,存放一些日志类的数据,对数据进行一些简单的查询操作。下面是简单的使用讲解。(随笔记录)es官方api地址:https://www.elastic.co/guide/en/elasticsearch/client/java-api/6.0/client.html众所周知es的java调用方式有三种,一种官方都要放弃的TransportClient,一种LowLevelJava...
2019-06-11 17:00:08 1805 1
原创 java与websocket实现多窗口聊天室
今天由于项目需要,所以看了下websocket,参考了很多博主的博客,如有雷同请谅解,在这里记录一下从一无所知到实现的过程。websocket的优点和作用百度一大堆就不说了,直接干。websocket的创建方式有两种,一种比较简单就是基于服务器的,一种基于springmvc的。这里使用的是基于服务器的。1、在maven中依赖javaee的jar包<dependency>...
2019-06-01 19:09:15 1352 1
原创 使用openstack4j构建网络与一些坑
openstack4jAPI:http://www.openstack4j.com/learnopenstackAPI:https://developer.openstack.org/zh_CN/api-guide/quick-start简单使用步骤():maven导入依赖包(不同包API有出入,以下内容都是3.2.0版本)<dependency> <groupI...
2019-05-30 20:13:28 2335 3
原创 简单实现有向无环图思路
给一部分带有from和to的节点组织成一个有向无环图,给from与to路径找到他们之前的连线轨迹。实现思路:遍历所有的节点,该节点如果不包含from或者to的内容且周围只有一个节点这样的节点从我们总的节点中删除,最终找到的就是我们想要的节点路线。代码demo如下import java.lang.reflect.Array;import java.util.*;public class ...
2019-05-13 15:59:47 2845
原创 mybatis某些字段无法映射成功
随笔记录下:刚刚遇到一个mybatis中reultMap定义正确column与property也都正确,字段的getset方法也都有,但是返回对象时,有些字段可以对应上有一些则不可以。找了好久才发现在sql语句中的resultMap写成了resultType。。。很low但是痛。改成resultMap一切正常!...
2019-03-07 21:37:21 13104
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人