
javaEE
mathlpz666
一介码农
展开
-
jackson全局配置解决LocalDateTime全局返回时间带“T“的时间格式处理
jackson全局配置解决Java 8 date/time type `java.time.LocalDateTime` 问题原创 2024-04-15 10:23:49 · 1098 阅读 · 1 评论 -
批量查询hive数据通过管道方式快速写入到Redis集群,脚本编写
批量查询hive数据,通过管道方式快速写入到Redis集群,脚本编写原创 2022-12-12 09:42:13 · 1772 阅读 · 1 评论 -
springboot升级swagger-ui到2.10.5, 有关版本更新带来的问题
引入swagger包: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger2.version}</version> </dependency>原创 2022-04-11 17:44:04 · 3415 阅读 · 0 评论 -
Java项目Junit4升级到Junit5(jupiter)
Junit4中的注解:@RunWith(MockitoJUnitRunner.class) 升级替换为:@ExtendWith(MockitoExtension.class)注意:1、当涉及Spring时:如果测试中使用Spring测试框架功能(例如)@MockBean,则必须使用@ExtendWith(SpringExtension.class)。它取代了不推荐使用的 JUnit4@RunWith(SpringJUnit4ClassRunner.class)2、当不涉及Spring.原创 2022-03-28 10:23:44 · 3699 阅读 · 0 评论 -
springboot项目java连接kerberos认证的hive和hbase,代码及报错问题解决
项目部署要连接外部系统(如苏研平台)的大数据平台hive和hbase组件,大数据平台配置了kerberos安全认证,但对方没有提供相关的连接示例代码。由于是第一次对接,部署调试过程中遇到很多问题,记录下来,仅供参考。1、hive连接配置代码: /** * @return */ @Bean(name = "datasourceHive") public DataSource getDataSourceHive() { // .原创 2021-03-31 11:15:57 · 6948 阅读 · 3 评论 -
hive大数据量实现分页查询,java结合mybatis及多数据源(hive、MySQL)
表信息(textfile存储格式):desc dim_tencentyk_info;OKurl string video_id string video_name string .原创 2020-10-29 10:18:51 · 2891 阅读 · 0 评论 -
springBoot多数据源配置,如mysql、hive,使用druid连接池
总共需要以下几个类:package com.config.datasource;import com.alibaba.druid.pool.DruidDataSource;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springfr原创 2020-09-22 14:39:38 · 1873 阅读 · 0 评论 -
解决logback日志配置SizeAndTimeBasedRollingPolicy文件大小分割不生效问题,配置分离
查询了很多网上的帖子,尝试各种配置都没有生效。本人项目文件配置:官方操作文档说明:<configuration> <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>mylog.txt</file> <rollingPolicy class="ch.qos.logback.core.rol.原创 2020-07-14 18:05:30 · 29426 阅读 · 4 评论 -
将数据从mysql导入到hive表
代码脚本如下:#!/bin/bash# 连接mysql数据库,并查询结果,将结果输出到文件中# 1.定义连接变量mysql_hostname='172.28.65.133'mysql_port='3306'mysql_username='root'mysql_password='xxxxxx'#dbname='recom_video'time=`date -d "1 day ago" +"%Y-%m-%d"`save_f="t_st_video_info_${time}.txt"原创 2020-06-24 15:14:21 · 2641 阅读 · 0 评论 -
使用sqoop将数据定时从hive表导入MySQL,采坑问题日记
使用sqoop将数据定时从hive表导入MySQL。话不多说,线上脚本:#!/bin/sh#********************************************************************************#********************************************************************************#reload env#当前目录路径mysqldhome_hostname=原创 2020-06-24 14:47:39 · 1385 阅读 · 0 评论 -
Flume对接Hive(Sink)遇到的坑,以及最终放弃hive选用hdfs。欢迎讨论指点
项目中打算使用Flume把数据直接传到Hive表而不是HDFS上,使用Hive作为Sink,Flume版本为1.9.0。前期启动遇到各种报错:NoClassDefFoundError: org/apache/hadoop/hive/ql/session/SessionStateNoClassDefFoundError: org/apache/hadoop/hive/cli/CliSessionStateNoClassDefFoundError: org/apache/hadoop/hive/原创 2020-06-10 17:50:19 · 2236 阅读 · 0 评论 -
常用的shell启动服务脚本/停止服务脚本
1、停止服务脚本:#! /bin/shell# 杀死进程appName='recommend-app'pid=$(ps -ef | grep ${appName} | grep java | grep -v grep | awk '{print $2}')echo -e $pidkill -9 ${pid}sleep 2if [ $? -eq 0 ];then e...原创 2020-01-16 15:36:29 · 4344 阅读 · 0 评论 -
AOP自定义切面日志
话不多说,直接上代码:/** * 自定义日志记录 */@Documented@Target({ElementType.METHOD, ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)public @interface OptionalLog { /** * 日志模块 * *...原创 2019-12-05 10:46:54 · 254 阅读 · 0 评论 -
Java多线程并发处理多个任务并获取结果
使用并发包中的Callable及Future类处理。话不多少,直接上代码:import lombok.extern.slf4j.Slf4j;import java.util.concurrent.Callable;/** * @Author: lp * @Date: 2019- */@Slf4jpublic class Mycallable implements Ca...原创 2019-12-03 19:54:28 · 3199 阅读 · 0 评论 -
Quartz V2.3.1版本sql初始化文件
## Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar## PLEASE consider using mysql with innodb tables to avoid locking issues## In your Quartz properties file, you'll need to set#...原创 2019-10-24 16:38:55 · 1358 阅读 · 0 评论 -
linux查找所有文件中某个字符串
查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l (1)find命令的一般形式 find pathname -options [-print -exec -ok] pa转载 2017-10-14 21:21:38 · 17305 阅读 · 0 评论 -
WEB安全测试要点总结
一、大类检查点:大类细项上传功能绕过文件上传检查功能上传文件大小和次数限制注册功能注册请求是否安全传输注册时密码复杂度是否后台检验激活链接测试重复注册批量注册问题登录功能原创 2017-10-23 19:27:09 · 27176 阅读 · 5 评论 -
BAT蘑菇街等Java社招面试总结一二
毕业之后工作两年有余,对现在的工作及工作环境有些不满,所以出来找下工作,看下外面的世界,同时也试下自己的水平。原创 2017-07-23 17:34:00 · 7592 阅读 · 0 评论 -
log4j2.xml和log4j.properties的指定配置路径方法
对于默认直接把配置文件放任classpath下面,这种henjiandan首先说下log4j的配置,有两种方法:1、在web.xml中配置(推荐):webAppRootKeywebapp.devportal log4jConfigLocation file:/opt/config/open_portal/opendev/appconfig/lo原创 2018-01-22 17:06:00 · 22432 阅读 · 0 评论 -
关于API无状态服务session并发问题的分析
代码截图:更改用户自定义变量,获取不同的名称:vars,即可。分析不同的线程,不同的session,不同的用户变量先贴上日志(4个不同的接口,5次并发请求):2018-05-2410:44:38.451 INFO [http-nio-8080-exec-4] - interceptor.AuthValidationInterceptor.getAuthKey(AuthValidationInt...原创 2018-05-24 11:03:24 · 1636 阅读 · 0 评论 -
JSON.parseObject将json字符串转换为bean类,是否大小写敏感区分
本人使用的是Alibaba的fastjson,经测试是不区分大小写的,可以直接转换,非常好用!com.alibaba.fastjson.JSONcom.alibaba.fastjson.JSON.parseObject(String text, Class<ColorTmplSubmitResp> clazz) 返回的json字符串: {"resultco...原创 2018-06-13 19:28:31 · 11074 阅读 · 4 评论 -
处理百万级Excel/CSV/TXT杂乱数据、提取无重复手机号(mysql+jdbc+poi)
maven工程的pom文件,引入mysql、:<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</art...原创 2018-05-31 10:06:29 · 1568 阅读 · 0 评论 -
mybatis代码自动生成器,使用eclipse和maven
首先pom中添加plugin,只需添加plugin,不需要添加dependency依赖包!!! <!-- mybatis-generator --> <plugin> <groupId>org.mybatis.generator</groupId> ...原创 2018-10-19 15:20:58 · 233 阅读 · 0 评论 -
git提交错误引发的血案——使用cherry-pick等解决git乱序提交问题
一次git错误提交的操作记录:$ git log(错误的commit记录,比如:push之前没有pull,造成代码错乱)commit c15809c85412701b8045c29e42b86ea79b757370 (HEAD -> yyy_1.13_part2_videoMsg_20190104)Author: xxx原创 2019-02-20 10:56:52 · 1963 阅读 · 0 评论 -
JAVA练习ReentrantLock等, 用两个线程同时操作,实现一次循环遍历字符串
问题:已知字符串abcdefghijk, 有两个线程同时操作,实现一下一次循环遍历出123456789。例如:t1线程结果是1、 t2线程结果是2、 再是t1 = 3这样的.、、、本人使用ReentrantLock及Condition实现思路如下,欢迎多指点交流:PS:show me code:package com.lpz.test.interview;...原创 2019-04-26 13:14:49 · 504 阅读 · 0 评论 -
java中jdk8的forEach()方法return血的教训!
啊啊啊!记录。。。JDK8中return竟然不return了。。。but:::2、两个for循环作对比,如下:原创 2019-04-18 20:39:35 · 10196 阅读 · 5 评论 -
javaMail使用javax.mail自动读取邮件,并下载解析附件,IMAP/POP3协议等
搜索网上各个案例,总结的一套比较全面且行之有效的方法。供大家参考使用!使用javax.mail自动读取邮件,并下载解析附件,IMAP/POP3协议等!直接上代码如下:package ***import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerF...原创 2019-04-19 08:42:52 · 13255 阅读 · 14 评论 -
redis系统性总结笔记
一、Redis入门介绍1.1 redis概述1.1.1 概念 1)Redis:REmote DIctionary Server(远程字典服务器) 2)是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,原创 2017-05-26 23:24:40 · 1805 阅读 · 1 评论 -
mysql之架构介绍1
1、mysql简介概述:开源的关系型数据库RDBMS,等。。高级MYSQL:mysql内核sql优化工程师mysql服务器的优化各种参数常量设定查询语句优化主从复制软硬件升级容灾备份sql备份2、linux版安装暂用mysql5.5,下载地址:http://mirrors.sohu.com/mysq原创 2017-11-12 17:49:08 · 364 阅读 · 0 评论 -
redis解析配置文件
它在哪?redis.confUNITS单位1 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit2 对大小写不敏感INCLUDES包含和我们的Struts2配置文件类似,可以通过includes包含,redis.conf可以作为总闸,包含其他GENERAL通用daemonizep原创 2017-11-10 22:16:59 · 222 阅读 · 0 评论 -
redis数据类型
Redis 键(key) keys *;exists key的名字,判断某个key是否存在move key db --->当前库就没有了,被移除了expire key 秒钟:为给定的key设置过期时间ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期type key 查看你的key是什么类型Redis字符串(Stri原创 2017-11-10 22:16:32 · 209 阅读 · 0 评论 -
缓存中常见的问题及解决方案
缓存技术是网站服务端经常用到的一种技术,在读多写少的业务场景中,通过使用缓存可以有效地提高网站的性能,支撑高并发的访问量,对数据库做到很好的保护。我们在使用缓存的时候,如Redis、Memcached,基本上都遇到以下几个问题:缓存穿透、缓存并发、缓存失效(缓存雪崩)、热点key、DB缓存一致性。本案例结合平台开发过程中遇到的问题,简要总结了缓存中常见的问题并提供一些解决方案。案例介绍原创 2017-11-10 14:23:01 · 3140 阅读 · 1 评论 -
jstack使用和线程堆栈dump分析
查看java进程的pid:查看并dump出线程堆栈信息,在DOS窗口中显示:或者直接将日志信息输出到文件(管理员身份):-l long listings,会打印出额外的锁信息,在发生死锁时可以用jstack -l pid来观察锁持有情况-m mixed mode,不仅会输出Java堆栈信息,还会输出C/C++堆栈信息(比如Native方法)原创 2017-10-15 21:06:15 · 8830 阅读 · 0 评论 -
java高并发程序设计学习笔记五六JDK并发包
1、各种同步控制工具的使用1.1 ReentrantLock它是synchronized的增强版,sync功能简单,把多余的线程放入等待区,这些线程只能死等;写法上有区别;synchronized也是可重入的(它拥有强制原子性的内置锁机制,是一个重入锁,所以在使用synchronized时,当一个线程请求得到一个对象锁后再次请求此对象锁,可以再次得到该对象锁,就是说在一个synchroni原创 2017-10-17 22:11:58 · 293 阅读 · 0 评论 -
高并发之多线程总结
1. 传统线程技术回顾1.1 传统线程创建方式1.继承Thread类并重写run()方法 非匿名实现类 匿名实现类 2.调用Thread的有参构造器,参数传入Runnable对象 扩展1 线程的start()方法原创 2017-05-26 23:22:48 · 765 阅读 · 0 评论 -
java高并发程序设计学习笔记七并发设计模式
一、什么是设计模式在软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的。《 设计模式:可复用面向对象软件的基础》 收录 23种模式:观察者模式 、策略模式 、装饰者模式 、享元模式 、模板方法 架构模式:M原创 2017-10-23 22:36:59 · 237 阅读 · 0 评论 -
java高并发程序设计学习笔记四无锁
1、无锁类的原理详解1.1 CASCAS算法的过程是这样:它包含3个参数CAS(V,E,N)。V表示要更新的变量,E表示预期值,N表示新值。仅当V值等于E值时,才会将V的值设为N。如果V值和E值不同,则说明已经有其他线程做了更新,则当前线程什么都不做。最后,CAS返回当前V的真实值。CAS操作是抱着乐观的态度进行的,它总是认为自己可以成功完成操作。当多个线程同时使用CAS操作一原创 2017-10-17 21:51:53 · 205 阅读 · 0 评论 -
java高并发程序设计学习笔记九锁的优化和注意事项
锁优化的思路和方法:减少锁持有时间:减少其他线程等待时间,只同步需要同步的相关的代码;减少锁粒度:将大对象拆成小对象,增加并行度,降低锁竞争;偏向锁,轻量级锁成功率提高;ConcurrentHashMap;锁分离:根据功能进行锁分离;ReadWriteLock;读多写少的情况,可提高性能;读写分离思想延伸,只要操作互不影响,锁就可以分离;Linked原创 2017-10-28 11:45:18 · 233 阅读 · 0 评论 -
java高并发程序设计学习笔记八BIO、NIO和AIO
什么事NIO?New I/O简称,与旧式的基于流的I/O方法相对,表示一套新的I/O标准;jdk1.4引入的;NIO是基于块(Block)的,以块为基本单位处理数据,传统I/O基于字节(Byte)的;性能比流好些;为所有原始类型提供(Buffer)缓存支持;增加通道(Channel)对象,作为新的I/O抽象,类似旧式的Stream;支持文件锁,和内存映射文件的文件访问接口;使用原创 2017-10-26 22:03:49 · 260 阅读 · 0 评论 -
对比Java.nio 和 Java.io
本文并非Java.io或Java.nio的使用手册,也不是如何使用Java.io与Java.nio的技术文档。这里只是尝试比较这两个包,用最简单的方式突出它们的区别和各自的特性。Java.nio提出了新的流(stream)通讯概念并且加入了新的缓冲、文件流以及socket(套接字)特性。java.io 概览这个包通过数据流和序列化机制来实现系统输入和输出。并且支持多种类型的数据流,转载 2017-05-31 00:23:32 · 233 阅读 · 0 评论