JAVA
文章平均质量分 66
sessinsong
程序猿 码农
展开
-
JDK 版本选择
JDK 版本选择最近在做新系统架构的时候,准备将架构做个整体的更新。整个技术栈以spring-could-alibaba 为主,能后围绕它做第三方组件搭配。大概的系统架构图 可以浏览 基于Spring Cloud Alibaba 的微服务系统架构在进行版本选择的时候,一般都是最新的稳定版本,但是现实情况,可能并不是那么美好,所以,JDK 17 虽然已经出来了,但我的这个规划里,并不适用。主要步骤选择 spring-cloud-alibaba 版本因为其他都要围绕 spring-cloud-al原创 2021-11-12 17:28:51 · 3459 阅读 · 1 评论 -
基于Spring Cloud Alibaba 的微服务系统架构
基于Spring Cloud Alibaba 的微服务系统架构公司以前的微服务都是直接基于spring cloud的,最近几年,由于阿里巴巴的微服务架构兴起,社区活跃度和维护的比较及时,顾准备搭建基于 Spring Cloud Alibaba 的微服务作为公司新系统的架构。架构图 v 0.0.1:Spring Cloud Alibaba: https://github.com/alibaba/spring-cloud-alibaba...原创 2021-11-11 17:20:39 · 2135 阅读 · 0 评论 -
获取 一个时间周期内 周几的次数
标题获取 一个时间周期内 周几的次数应项目需要,计算一个时间周期内、周几的次数。来计算用户购买的视频,是否到了观看时间。通过网上查找资料和总结,找到了下面两个比较不错的算法。记录下来,供后期学习方法一通过Stream.iterate 生成一个从开始日期到结束日期的日期流,能后通过过滤器过滤出符合要求的日期,统计总数,返回缺点: 因为要把时间段内的时间都计算出来,比较消耗时间和内存,时间差距不大的情况下可以使用优点: 可以通过扩展,快速的查询出具体的日期。public static int get原创 2021-07-14 15:40:16 · 389 阅读 · 0 评论 -
cors error cross-Origin resource sharing error PreflightMissingAllowOriginHeader 问题排查
标题cors error cross-Origin resource sharing error PreflightMissingAllowOriginHeader在chrome 浏览器中,部分接口调用会报 cors error cross-Origin resource sharing error PreflightMissingAllowOriginHeader 错误跨域问题?刚开始以为是跨域的问题,但是其他同一服务器下的接口,能正常调用,所以应该不是这个问题,应该问题在请求头丢失仔细看了下报原创 2021-02-25 10:13:21 · 19112 阅读 · 0 评论 -
spring mvc 时间格式序列化,反序列化配置
spring mvc 时间格式序列化,反序列化配置在spring mvc 项目中使用 LocalDateTime、LocalDate、LocalTime等时间类型时,为了统一般会使用 @JsonFormat、 @DateTimeFormat 注解进行格式化。但是项目当前一般使用的地方都比较多,每一个地方都加上注解,太麻烦了。所以为了简便,特意总结了下面一套配置时间格式化的配置。方便以后使用/** * 时间格式序列化,反序列化,格式处理 */@Configurationpublic clas原创 2020-07-28 18:03:01 · 950 阅读 · 0 评论 -
activiti 7 生成流程图
activiti 7 生成流程图有一个根据流程图的bpmn 文件 生成png 图片,提供给前端预览主要代码: /** * Get Process instance diagram */ public InputStream getProcessDiagram(String processInstanceId) { ProcessInstance p...原创 2020-03-05 18:53:30 · 8754 阅读 · 35 评论 -
spring mvc @NotNull 传参验证
spring mvc @NotNull 传参验证在spring mvc开发 配合前端同时进行创建,修改操作的时候,需要验证参数的有效性。传统的方案是在代码里面通过 if else 实现if (user.gietNmae() is null) { // xxx }else if user.getNum is null // xxx以上是比较传统的方案,如果有多个地方判断参数的有效性,...原创 2019-11-09 18:47:58 · 990 阅读 · 0 评论 -
RestHandlerExceptionResolver 设置 handler
spring mvc 项目中,在使用 RestHandlerExceptionResolver 做统一异常处理的时候,有时候需要设置 handler 来解决跨域的问题。 公司现有的项目实现的逻辑是如果请求失败,通过 RestHandlerExceptionResolver 的 builder 方法 返回一个状态码为400 的错误信息给调用方。 @Bean publ...原创 2018-08-16 20:19:05 · 1976 阅读 · 0 评论 -
java8 List<Map> 转Map
最近在做一个按天统计数据的功能的时候,需要将返回的一个 List 对象转换为map 返回给前端。 List&lt;Map&gt; list = new ArrayList(); Map map1 = new HashMap(); map1.put("staticDay","11-15"); map1.put("total&a原创 2018-11-15 14:32:08 · 17604 阅读 · 2 评论 -
jackson can not deserialize from Object value (missing default constructor or creatorn
jackson + PageImpl redis 缓存,反序列报JsonMappingException: Can not construct instance of org.springframework.data.domain.PageImpl: no suitable constructor found,can not deserialize from Object value (mis...原创 2019-07-12 20:27:57 · 2832 阅读 · 0 评论 -
MockMvc 测试web 项目 用户登录问题
再用 MockMvc 写 web 项目 controller 层的测试用例的时候,碰到登录的问题。 背景: 项目是ssm 架构,权限是用的 keycloak。 在使用 MockMvc 写测试用例,发送http 请求的时候,服务器需要验证用户信息。最开始使用过 header(HttpHeaders.AUTHORIZATION,basicDigestHeaderValue) 和 with(http...原创 2018-07-18 20:42:23 · 5829 阅读 · 10 评论 -
有两个有序的数据,将他们合并并保持排序顺序不变
有两个有序的数据 a[],b[], 他们都是升序的,将他们合并成数据c[] ,要求也是升序的 要求时间复杂度是 O(n) 请考虑边界条件,避免程序出现异常package xyz.songxl;public class mergeArray { public static void main(String[] args) { int a[] ={1,3,5,...原创 2018-03-23 12:23:39 · 2064 阅读 · 0 评论 -
hashmap 实现原理总结
HashMap 实现原理数据结构是基于哈希表实现的 (数据+链表+二叉树 (红黑树))默认的加载因子是0.75 默认大小是 16存储元素 put(key,value) a. 计算key 的hash 值, hash b. 根据上面得到的hash 值和数据的长度进行 取余操作,计算出 该元素在数据组的位置 i c. 如果位置i 没有元素 直接存储, ...原创 2018-03-17 18:18:07 · 256 阅读 · 0 评论 -
el 表达式无效
最近大家在开发新项目的时候,经常会出现el 表达式无效,页面直接以字符串的形式输出结果的问题。最后发现是因为我们使用的jsp 版本,他默认是不开启el 表达式的,需要手动开启。或者是升级jsp 的版本。 方案一 : 手动开启 el 表达式, 在页面加入如下代码 这个方案简单,但是需要在每一个jsp 页面都需要进行这个操作,就显得特别繁琐了,那么可以采用第二种方案更新jsp原创 2018-01-08 18:54:05 · 563 阅读 · 0 评论 -
ssm 项目缓存研究
mybatis 一级缓存mybatis 默认开启一级缓存一级缓存是SqlSession级别的缓存,在操作数据库时需要构造SqlSession对象,在对象中有一个(内存区域)数据结构(hashmap)用于存储数据,不同SqlSession之间缓存的数据互不影响注:在常见的项目当中(mybatis+spring)spring 对mybatis的sqlserssion 的使用是由 template...原创 2018-11-12 11:58:26 · 859 阅读 · 2 评论 -
解压版本 rabbitmq安装 使用
解压版本 rabbitmq安装 使用因为个人喜好,能使用解压版的坚决不用安装版的。刚好 rabbitmq也提供了解压版。所有我这里已解压版为例。rabbitmq 安装需要erlang 的支持,所有安装rabbitmq 之前需要现安装erlang下载 erlang https://www.erlang.org/downloads下载 rabbitmq http://www.rabbitm...原创 2019-01-11 20:58:57 · 3178 阅读 · 7 评论 -
local class incompatible: stream classdesc serialVersionUID = -6513709415809811854, local class seri
local class incompatible: stream classdesc serialVersionUID = -6513709415809811854, local class serialVersionUID = -7166464393377422509今天在更新项目后,接口报 local class incompatible: stream classdesc serialVe...原创 2019-01-09 16:11:40 · 25081 阅读 · 7 评论 -
java 三种代理模式
代理(Proxy)是一种设计模式,定义:为其他对象提供一个代理以控制对某个对象的访问,即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法静态代理在编译期确定代理对象。静态代理在使用是时,需要定义接口类,并且被代理...原创 2019-07-10 21:05:13 · 240 阅读 · 0 评论 -
hashmap 源码解析 new HashMap()
hashmap 源码解析 new HashMap<>(7)hashmap 实例化有四个构造方法 分别是:默认构造函数: 最常用 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; // all other fields defaulted }指定初始化大小的public HashMa...原创 2019-08-02 20:59:25 · 714 阅读 · 0 评论 -
Arrays.asList() add UnsupportedOperationException 问题解析
问题代码: String[] str = new String[]{"a","b","c"}; List<String> list = Arrays.asList(str); list.add("d");这是一个很多人在使用aslist 会遇到的坑,自己也踩过几次,今天翻阅了下源码,做个笔记,加深印象。第一步先查看下 asList 方法的实现。...原创 2019-07-23 11:51:20 · 1176 阅读 · 0 评论 -
hashmap 源码解析 扩容
这篇文章是针对 前两篇hashmap 实现原理总结hashmap 源码解析 new HashMap()的补充,主要是讲解hashmap 是怎么进行扩容的。先大概说下总结,后面在进行详细描述如果使用的无参的构造函数申明的hashmap 在第一次put 数据的时候回进行初始化扩容,初始化map 大小是16, 扩容阈值是 12如果使用了带参数的构造函数申明的hashmap, 在第一次put...原创 2019-08-06 18:03:10 · 273 阅读 · 0 评论 -
spring aop DefaultAopProxyFactory 默认代理源码解析
本文主要分析 spring aop DefaultAopProxyFactory.java 里面 选择默认代理逻辑主要方法@Override public AopProxy createAopProxy(AdvisedSupport config) throws AopConfigException { // 如果指定了 optimize为true 或者是proxyTargetClass...原创 2019-08-07 21:09:04 · 930 阅读 · 0 评论 -
java读取视频时长
原文地址最近需要用java处理视频文件,读取视频的时长,在网上查,没找到合适的方法,用JMF吧,支持的格式太少,用JNI去读取其他语言写的API,但比较麻烦。无意中找到了jave这个开源的项目,看了看介绍,是用java来处理多种视频格式之间的转换的,下载了下来,看了看,还真找到了获取视频时长的方法。记录下来,给需要朋友做个参考。下载jave的网址http://www.sauro转载 2013-10-31 10:12:44 · 994 阅读 · 0 评论 -
查看class 文件编译的jdk 版本号
查看编辑class 文件的版本号,可以通过能以16进制打开class 文件的软件 例如(nodepadd++,sublime) 也可以通过使用javap -v 来查看版本号以16进制的形式打开文件其中 cafe base 是java的文件头 0000 表示次版本号 0033 表示主版本号(十六进制) 2. 通过 javap -v xxx.class 命令查看版本号 版本号列表原创 2017-12-21 17:36:18 · 892 阅读 · 0 评论 -
数据库设计 资源表与资源收藏表的设计
项目中有一个功能。 就是记录资源的的评分数,收藏,点赞类似的功能。不同的开发人员具有相似的功能做了不同的设计。其中就以 A,B,C 代替吧。下面以收藏数作为实例进行说明。原创 2017-11-21 21:04:23 · 6203 阅读 · 0 评论 -
java 获取时间与系统时间不一致问题
最近项目部署到服务器上,发现时间不对,与当前时间相差12个小时,第一反应是 系统时间是不是不对。通过date 命令查看,发现系统用的是est 时区 (EST eastern standard time (美国)东部标准时间 慢北京时间 13个小时。)那就是简单了 ,修改下时区就好了。于是按照晚上的命令将系统时区修改了下。时间正常了,重新运行程序,问题仍能存在,还是相差13个小时。以为原创 2017-11-11 15:20:34 · 27115 阅读 · 8 评论 -
jsp include html 乱码问题 <%@ include page=""%>
在使用 zhiling原创 2014-08-23 17:02:56 · 11864 阅读 · 4 评论 -
最长回文子串问题
最长回文子串原创 2014-05-28 17:11:34 · 759 阅读 · 0 评论 -
java -verbose 命令
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。1.java -verbose:class在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。 verbose和v转载 2014-02-17 16:36:53 · 1094 阅读 · 0 评论 -
文件上传 耗时特别长
http 文件上传 在ie浏览器下 耗时特别长当使用 HTTP 文件上载功能上载大小为几兆字节的文件时,上载操作需要很长时间才能完成。 项目中做了个上传视频的文件的功能,在firefox浏览器下 试了下 上传个500m个文件 耗时1:10秒 感觉还可以接受。 但是在Ie浏览器下 却要四分多钟, 特别的慢, 但是查看代码 也没发现有什么问题啊。 该设置缓冲区的地方 设原创 2014-02-14 16:24:59 · 3838 阅读 · 0 评论 -
Eclipse的调试功能的10个小窍门
一个偶能的机会 发现了这篇美文, 对于经常需要debug的我来说 收获很大, 现在转载过来 供大家分享 中文原文地址: http://www.importnew.com/6164.html英文原文地址: https://blog.codecentric.de/en/2013/04/again-10-tips-on-java-debugging-with-eclipse/转载 2013-09-15 15:36:57 · 1691 阅读 · 0 评论 -
InetAddress.getLocalHost().getHostAddress(); 127.0.0.1
web 项目中 需要或者服务器的ip地址 于是使用了 InetAddress.getLocalHost().getHostAddress();方法来 获取ip,直接运行! ok ! 没问题 能正确获取到主机的ip地址 (192.168.100.x)部署到服务器上去, 也正常,但运行了一段时间后(一周左右吧)得到的地址确实127.0.0.1(换回地址)。 我去!!!!重启有原创 2013-09-03 17:11:19 · 4666 阅读 · 0 评论 -
通过ip地址直接访问tomcat下的某一个默认项目
以前访问tomcat下的项目时 一直都是 localhost:8080/projectName 后来感觉有点烦,每次都这样写,多麻烦啊 能不能直接输入ip地址(或者是localhost)就能访问到tomcat下的某一个默认的项目呢 ? 相当于项目中的欢迎页面 ! 于是就上网搜了一下 发现还真可以。 实现这个方法主要有两个方法 。首先打开tomcat安装目录下的con原创 2013-07-31 16:26:32 · 5170 阅读 · 7 评论 -
Java中long类型直接赋值大数字的问题
原文出处: Java中long类型直接赋值大数字的问题作者: Jet Mah from Java堂声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!在Java中执行如下的代码:long number = 32322355744;编译的时候会出现一个错误,提示“过大的整数: 32322355744”,如果在Eclipse中转载 2013-06-02 14:37:17 · 5335 阅读 · 0 评论 -
有两个数组a,b,大小都为n,数组元素的值任意,无序;要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
public static void main(String[] args) { method(5); } /** * 有两个数组a,b,大小都为n,数组元素的值任意,无序;要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小 * 思路 * 1.算a b 之间的差值 differ * 2. 找出 a b 数组中差值最接近differ/2 的元素原创 2013-03-05 11:52:20 · 4188 阅读 · 3 评论 -
main 启动 spring hiberante项目报org.hibernate.LazyInitializationException 异常
最近在做一个web项目ssh架构的 在做数据库操作时原创 2014-08-27 11:33:11 · 1864 阅读 · 0 评论 -
一台电脑安装多个版本的jdk
我们平时在做java开发的使用,有时需要在多个原创 2013-08-27 09:32:47 · 24615 阅读 · 3 评论 -
SSM框架——使用MyBatis Generator自动创建代码
这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。 使用自动生成有很多方式,可以在eclipse中安装插转载 2016-03-07 11:34:15 · 935 阅读 · 0 评论 -
java web 项目中 简单定时器实现 Timer
java web 项目中 简单定时器实现 Timer项目背景: 系统中有一个存放压缩文件的临时文件夹。当时间长了后 存放文件多了,占用磁盘空间过大 让费资源, 所以需要定期去清理临时文件夹下的文件。所以最先想到了使用定时器来实现该功能。调查: 通过查阅资料原创 2016-01-14 17:28:16 · 15245 阅读 · 2 评论 -
web.xml deployment descriptor exampless
The web.xml is a configuration file to describe how a web application should be deployed. Here’re 5 web.xml examples, just for self-reference.1. Servlet 3.1 deployment descriptorJava EE 7 XM转载 2016-01-22 15:50:37 · 2609 阅读 · 0 评论