Java
文章平均质量分 63
seesun2012
成大事者,不吃全鱼!
展开
-
【运维笔记】docker + elasticsearch + kibana + logstash + filebeat + springboot 实现多模块日志收集系统(详细步骤版)
Centos7.5 docker-24.0.6 + elasticsearch-7.4.0 + kibana-7.4.0 + logstash-7.4.0 + filebeat-7.4.0 + springboot 实现多模块日志收集。原创 2023-10-09 23:03:37 · 398 阅读 · 0 评论 -
java解析webp格式图片宽高;java解析webp图片转png格式
package 你的报名:***.***.***.***;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;/** * 图片处理工具类 */public class ImageUtils { /** * 解析webp格式图片宽高 * * @param inputStream IO输入流 */ public st原创 2021-11-09 11:29:21 · 1001 阅读 · 0 评论 -
springboot多模块项目,引用子项目的mapper中的xml文件
springboot多模块项目,引用子项目的mapper中的xml文件,一直引用不到提示:Caused by: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): utopia.account.dao.MenuDao.getMenuList我的配置文件是:mybatis: mapper-locations: classpath:mapper/*.xml只需要改成:mybatis原创 2021-05-16 01:46:45 · 1437 阅读 · 0 评论 -
【常用工具】java aes对称加密工具类
AES对称加密工具类,代码如下:package com.sszh.utils.security;import javax.crypto.Cipher;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;/** * AES对称加密工具类 */public class AesEncryption { /** * 加密数据 * * @param d原创 2020-08-17 16:16:22 · 524 阅读 · 0 评论 -
【常用工具】java base64加密工具类
java base64加密工具类import org.apache.commons.codec.binary.Base64;public class Base64Method { public static String EncryptBase64(String a_strString) throws Exception { Base64 base64 = new Base64(); String base64str = new String(base64.encode(a_strStri原创 2020-08-17 16:10:48 · 842 阅读 · 0 评论 -
SpringBoot AOP打印请求参数与响应参数
package com.sszh.mall.operate.filter;import com.alibaba.fastjson.JSONObject;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;impor原创 2020-06-15 14:47:03 · 4248 阅读 · 0 评论 -
已解决:springboot项目解决跨域问题
package com.sszh.mall.operate.filter;import org.springframework.boot.web.servlet.FilterRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.原创 2020-06-01 20:49:33 · 217 阅读 · 0 评论 -
【并发编程】java 如何解决redis缓存穿透、缓存雪崩(高性能示例代码)
【缓存击穿】1、缓存穿透是怎么来的?由于Redis有一定的命中概率,大量请求进来发现Redis中并没有相关数据,从而直接访问数据库服务,致使器宕机;解决方案:package com.cn.seesun2012.cache;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.Lock;impor...原创 2018-11-22 16:48:48 · 27377 阅读 · 7 评论 -
【多线程3】:通俗易懂的,并发锁、尝试锁、定时锁(概念+示例)
Lock接口出现的背景:synchronized关键字存在着一定的缺陷:1、阻塞式:当某一个线程获取锁时,并执行该代码块,其他线程只能够一直等待,等待取锁的线程释放锁;2、效率底:一但线程执行sleep,其他线程只能干巴巴的等待,一旦大量并发进入,将会极大影响性能;3、释放锁:只有两种情况:a.当前线程执行完毕。 b.线程执行异常;...原创 2018-11-26 16:27:33 · 22061 阅读 · 0 评论 -
【运维笔记】使用 Nginx + tomcat 实现负载均衡、集群
准备工作:nginx下载地址:http://nginx.org/en/download.html;选择稳定版(Stable version),解压得到文件夹:nginx-1.14.1;启动两台tomcat服务器,端口分别为8080、9090、10010;进入conf文件夹,备份nginx.conf.bak配置文件,修改nginx.conf;nginx.conf 集群精简版:e...原创 2018-11-27 15:22:57 · 19457 阅读 · 0 评论 -
maven编译的时候跳过测试类
摘要:maven编译的时候跳过测试类方法一:命令模式,鼠标移动至需要编译的项目上右键依次完成以下步骤:Run As → Maven Build... → 在Goals输入:install -Dmaven.test.skip=true → 点击Apply → Run运行...原创 2018-04-02 09:16:58 · 23089 阅读 · 0 评论 -
Maven配置阿里云镜像
Maven配置阿里云镜像,具体配置参数:<mirror> <id>alimaven</id> <name>aliyun maven</name&原创 2018-04-08 14:34:31 · 21365 阅读 · 0 评论 -
Java jxl导入excel文件,导入的数字、身份证号码、手机号变成了科学计数法,解决方案
这是一个execl文件导入数据库操作,使用jxl解析execl导入数据库过程出现了科学计数法,与想要导入的数据不匹配,以下是案例以及解决方案:导入成功后示例: 1、手机号:15388886666 科学计数法:1.54E+10 2、数字:123456789000000 科学计数法:1.23E+14 3、身份证:432222198808083789 科学计数法:4.32E+17解决思路: 1、判原创 2017-05-11 12:37:27 · 33357 阅读 · 1 评论 -
【多线程2】:死锁+示例代码
什么是死锁: 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。示例代码:package com.seesun2012.csdn.cn;/** * 死锁 * * @author seesun2012@163.com ...原创 2018-04-01 12:20:18 · 21874 阅读 · 0 评论 -
【多线程1】:synchronized关键字(同步锁、可重入锁、非公平锁)
首先,什么是锁,为什么要用这个玩意儿?掌握Java中锁是Java多线程编程中绕不开的知识,只有知道理解Java各种锁才能在编码过程中灵活运用,写出更高效的多线程程序。而理解掌握锁的第一步,可从宏观上对比理解一下各种锁概念。synchronized同步锁:public class UserInfoService { /** 普通代码 **/ public String getUserIn...原创 2018-11-26 17:02:16 · 21275 阅读 · 0 评论 -
【运维笔记】Linux 安装 jdk1.8.0_191 指南
运维过程:1、下载JDK1.8.0_1912、安装步骤及操作命令1、官网下载: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2、安装步骤及操作命令:1)yum安装上传命令,root 账号登陆后执行以下命令 (#号后面的才是可执行命令,下文雷同):[ro...原创 2018-11-29 19:09:14 · 19852 阅读 · 0 评论 -
【JVM学习】将java文件编译成字节码文件,再到反编译,字节码指令剖析
一、新建HelloWorld.java文件,内容如下(简易):public class HelloWorld { public int firstStack() { int a = 100; int b = 100; int c = 100; return (a+b)*c; }}二、将后缀名为java的源码...原创 2018-12-02 23:26:58 · 27225 阅读 · 2 评论 -
【错误总结】java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lan
原创 2018-11-30 17:30:12 · 18466 阅读 · 0 评论 -
【插件增强】maven项目实现一键打包、自动化打包、分不同环境打不同配置项目包
这是一个用来区分配置资源的描述文件,不参与配置项!环境: 开发默认!开发默认!开发默认!注意: 如果这里只有这个文件,打包时会默认将src/main/resources文件夹中的配置文件打到项目中一、配置教程:1、 添加src/main/filters目录,子目录结构如下:----filters (资源根目录) ----dev (开发环境) ----pro (生产环...原创 2019-01-23 10:43:52 · 1563 阅读 · 0 评论 -
shiro+layui登录超时后发起ajax异步请求,跳到登录界面
一、后端配置:1、创建LoginFilter.java(过滤器主程序)注意:有用Shiro权限框架的继承AdviceFilter类,重写preHandle()方法,没有的请直接实现Filter接口,重写doFilter()方法package com.seesun2012.web.mall.filter;import javax.servlet.ServletRequest;import...原创 2019-02-21 10:16:50 · 2177 阅读 · 0 评论 -
判断多个时间(数值)区间段是否出现重叠(时间工具类)
package com.sszh.util.date;import java.math.BigDecimal;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.Dat...原创 2019-09-23 10:15:59 · 5545 阅读 · 0 评论 -
quartz时间配置
1、 CronTrigger时间格式配置说明CronTrigger配置格式:格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 0-23 ...原创 2018-05-28 19:42:10 · 21561 阅读 · 0 评论 -
如何解决5万的并发量
模拟情景: 类似京东618秒杀活动,数据库中(mysql)只有一条数据,然后有5万并发量,页面要保证正常显示。问题一:不用redis等分布式框架,就用传统的方法如何解决?如何保证数据库的稳定? 1. 页面商品剩余数量的准确性 剩余数量的查询属于QPS,而且你这里假设只有一行数据,所以一台数据就算5W并发,查询再快,传输也有极限,而且这个假设在实际情况中几乎不存在只需要考虑数据库里面只有1...转载 2018-03-09 17:59:48 · 29016 阅读 · 0 评论 -
最常用的15大Eclipse开发快捷键技巧
引言 做java开发的,经常会用Eclipse或者MyEclise集成开发环境,一些实用的Eclipse快捷键和使用技巧,可以在平常开发中节约出很多时间提高工作效率,下面我就结合自己开发中的使用和大家分享一下Eclipse中常用到的快捷键和技巧。1、alt+?或alt+/:自动补全代码或者提示代码 这个是我最得意的快捷键组合了,尤其是当输入syso几个字符之后,2个手指轻松转载 2018-01-31 15:46:39 · 21305 阅读 · 0 评论 -
自定义注解提示:RetentionPolicy/ElementType cannot be resolved to a variable
在开发过程中,用到注解,报如下错误,包导入不进来,当前试用的是JDK1.8提示: 解决方案:1、全部导入:import java.lang.annotation.*;2、手动导入:import java.lang.annotation.ElementType;import java.lang.annotation.RetentionPolicy;...原创 2018-07-25 10:25:31 · 21700 阅读 · 0 评论 -
Java Socket通信实例(源码)
Socket分为ServerSocket和Socket两大类;其中ServerSocket用于服务器端,可以通过accept方法监听请求,监听到请求后返回Socket;Socket用户具体完成数据传输,客户端直接使用Socket发生请求并传输数据。DEMO: 单方面发送消息:服务端:package com.seesun2012.socket;import java.io....原创 2018-06-22 16:04:32 · 26336 阅读 · 1 评论 -
Java如何实现form表单提交的数据自动对应实体类(源码)
原生Java+JQuery form表单serializeArray提交自动对应java实体,这是一个实际的例子:html界面:<form id="data-form"&am原创 2018-06-21 19:01:59 · 32370 阅读 · 1 评论 -
Java 获取当前时间距离当天凌晨的秒数
在前期项目中遇到一个客户端与服务器间的时间同步问题,需要获取到当前时间与当天凌晨时间距离的秒数,写这篇文章主要是为了总结一下经验提升方便日后温习,以下是具体的测试代码: Junit的maven依赖:<dependency> <groupId>junit&am原创 2018-06-21 18:26:36 · 35350 阅读 · 5 评论 -
Oracle类型和对应的Java实体类
翻译原文地址: Oracle Database JDBC开发人员指南和参考QL类型和Java类型之间的默认映射: SQL数据类型 JDBC类型代码 标准的Java类型 Oracle扩展Java类型 1.0标准的JDBC类型: CHAR java.sql.Types.CHAR java.lang.String oracl...原创 2018-06-11 13:42:57 · 24995 阅读 · 1 评论 -
Java根据byte数组,生成文件
根据byte数组,生成文件package com.rfpay.scheduled;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.springframework.stereoty...原创 2018-05-26 18:26:46 · 39297 阅读 · 8 评论 -
Java如何操作对象(bean)进行动态排序?
简介如题:Java如何操作对象(bean)进行动态排序?Java实体类(bean)动态排序?原理:利用反射根据指定的属性值来排序;技巧:利用Collections组件的ComparatorUtils类可以实现含有空值的排序,请读者参考相关的API;(1)编写Student类,该类定义了3个域:id,name,score,并且提供了相应的get和set方法。代码如下:pack...原创 2018-05-05 11:36:59 · 22847 阅读 · 1 评论 -
通过MyBatis拦截器实现增删改查参数的加/解密(已上线项目)
项目背景:由于系统已成型,客户方要求对账号、手机号、身份证号、银行卡号进行加密才可以上线部署,并且只有拿到私钥的人才可以解开,这里只贴了关键性代码,后续贴出加密代码部分。一、MyBatis拦截执行参数:package com.seesun2012.dao.interceptor;import java.lang.reflect.Field;import java.sql.Prep...原创 2018-08-07 13:10:35 · 31781 阅读 · 23 评论 -
java 大文件上传 断点续传 完整版实例 (Socket、IO流)
java两台服务器之间,大文件上传(续传),采用了Socket通信机制,具体思路如下:实现思路: 1、服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操作 2、服:使用ServerSocket.accept()方法进行阻塞,接收客户端请求 3、服:每接收到一个Socket就建立一个新的线程来处理它 4、客:利用Socket进行远程连接,询问已上传进度 5原创 2017-08-18 13:50:40 · 50186 阅读 · 26 评论 -
mybatis ResultMap对象详解
mybatis ResultMap对象详解原创 2018-07-30 09:31:10 · 22273 阅读 · 0 评论 -
mybatis分页插件使用
一、添加pom.xml依赖: <dependencies> <dependency> &amp原创 2018-10-24 15:10:21 · 21575 阅读 · 0 评论 -
eclipse 通过Dao中的方法,快速定位Mapper.xml位置
ctrl+左键点击mapper的方法最后一个就是可以跳转到mapper.xml文件步骤:Help → Eclipse Marketplace → 选择search标签 → 输入:MyBatipse → install → 一路点同意并next如下图:...原创 2018-11-05 14:08:06 · 26932 阅读 · 0 评论 -
MyBatis 是怎么把查询出来的结果集映射到实体类(JavaBean)上的,原理解释
MyBatis 是怎么把查询出来的结果集映射到实体类(JavaBean)上的,原理解释原创 2018-07-27 18:57:19 · 41334 阅读 · 12 评论 -
使用Java自定义注解校验bean传入参数合法性(Java自定义注解源码+原理解释)
Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)前言:该用户暂未添加CheckNull.java 类package com.seesun2012.common.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;im...原创 2018-05-12 18:20:24 · 24915 阅读 · 3 评论 -
Java如何大批量从json数据源中按指定符号隔字符串,并修改、删除数据
/** * Java如何大批量从json数据源中按指定符号隔字符串,并修改、删除数据 * * @author 张擎宇 * */public class AppointSeparate{ public static void main(String[] args) { //定义加入有一万条数据要被处理 int aa原创 2016-10-17 10:06:57 · 24184 阅读 · 0 评论 -
Java 防SQL注入过滤器代码
前言浅谈SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,达到一定的非法用途。解决办法1、配置WEB-INF/web.xmlweb-app> welcome-file-list> welcome-file>index.htmlwe原创 2018-01-14 18:55:22 · 31776 阅读 · 1 评论