
Java
涉及Java基础、框架等各种内容
第三眼的思绪
这个作者很懒,什么都没留下…
展开
-
Java代码结构
结构原创 2023-02-03 15:04:49 · 385 阅读 · 0 评论 -
ab测试参数描述详情
ab原创 2023-01-09 11:51:56 · 281 阅读 · 0 评论 -
Java通过Zxing生成和解析二维码
java在对二维码进行操作的工具jar来源主要有两种,一种google开发提供的Zxing相关jar,一种是小日本开发提供的Qrcode.jar。以下将对二维码的生成和解析进行详解。本例中采用google提供的二维码生成工具jar进行操作生成二维码:在贴出demo代码之前,我们先把其中会用到的部分工具类源码贴出来。矩阵输出为图片流工具类MatrixToImageWriter...原创 2022-08-31 15:55:07 · 1875 阅读 · 0 评论 -
mybatis级联查询
用户表:CREATE TABLE `sys_user` ( `userid` varchar(50) NOT NULL, `roleid` int(11) NOT NULL, `username` varchar(50) DEFAULT NULL COMMENT '用户名', `password` varchar(50) NOT NULL, `sex` tinyint(6) D原创 2022-08-31 15:54:04 · 373 阅读 · 0 评论 -
SpringAOP拦截Controller,Service实现日志管理(自定义注解的方式)
首先我们为什么需要做日志管理,在现实的上线中我们经常会遇到系统出现异常或者问题。这个时候就马上打开CRT或者SSH连上服务器拿日子来分析。受网络的各种限制。于是我们就想为什么不能直接在管理后台查看报错的信息呢。于是日志管理就出现了。 其次个人觉得做日志管理最好的是Aop,有的人也喜欢用拦截器。都可以,在此我重点介绍我的实现方式。 Aop有的人说拦截不到Con转载 2016-05-26 12:16:02 · 1090 阅读 · 2 评论 -
Springmvc实现文件上传下载
文件上传springmvc中文件上传需要的第三方包主要有commons-fileupload.jar、commons-io.jar和spring-web.jar。其实现方式代码如下:/** * @param request 请求对象 * @param storePath 存储目录(文件夹) * @return boolean 是否上传成功 * @throws IllegalStat原创 2020-05-28 08:47:47 · 216 阅读 · 0 评论 -
@Autowired和@Resource装配详解
概览:@Resource限定名(@Resource(name="***")) > @Primary > 申明字段名匹配 > 类型匹配(仅限单例)@Autowired限定名(@Qualifier("***")) > @Primary > 类型匹配(仅限单例) > 类型匹配 + 申明字段名匹配 参考博文:http://www.cnblogs.c...原创 2018-10-29 10:30:20 · 773 阅读 · 0 评论 -
POI 获取Excel列数和行数的方法
//获取指定行,索引从0开始hssfRow=hssfSheet.getRow(1);//获取指定列,索引从0开始hssfCell=hssfRow.getCell((short)6);//获取总行数//int rowNum=hssfSheet.getLastRowNum();//获取一个excel表格中的总记录数int rowNum=storagesList.size原创 2015-05-19 09:40:08 · 4419 阅读 · 0 评论 -
log4j配置信息详解
Log4j 配置 1、 下载最新的Log4j.jar包,放到相关项目的Lib下,并添加进项目的Libraris.2 、把log4j.properties文件放到项目的SRC根目录下3、 关于log4j.properties 3. 1 log4j.rootLogger=[ level ] , appenderName, appenderName, … 其中,level原创 2015-12-03 16:04:43 · 705 阅读 · 0 评论 -
Netty 粘包、断包解决
Netty和Mina一样是NIO通讯工具框架,有一定区别也有一定相似之处。Netty和Mina在数据包处理、传输时都有可能会出现粘包和断包的情况,下图对粘包、断包进行描述。以下是网上对粘包的解决方式:1、消息定长,例如每个报文的大小为固定长度200字节,如果不够,空位补空格。2、在包尾增加回车换行符进行分割,例如FTP协议。3、将消息分为消息头和消息体,消息头中包含消息长度原创 2017-01-12 15:23:55 · 7530 阅读 · 2 评论 -
Spring jar包详解
Springge'zhohttp://repo.spring.io/release/org/springframework/spring/原创 2014-07-18 15:15:10 · 548 阅读 · 0 评论 -
SpringMVC工作原理
SpringMVC的工作原理图:SpringMVC流程1、 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 Dispa...转载 2018-07-14 19:19:25 · 279 阅读 · 0 评论 -
Mina 粘包、断包、半包解决
在使用mina框架时,很可能会出现粘包、断包和半包的qing'k原创 2017-01-12 14:47:40 · 3792 阅读 · 0 评论 -
Pushlet详解
Pushlet推送是一种将java后台数据推送到web页面的ji'shu原创 2016-11-02 14:06:23 · 7193 阅读 · 3 评论 -
Java过滤器与SpringMVC拦截器之间的关系与区别
过滤器和拦截器的区别: ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。 ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。 ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。 ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。 ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在转载 2015-12-20 22:41:33 · 645 阅读 · 0 评论 -
MyBatis属性详解
SELECT属性配置属性描述取值默认id在这个模式下唯一的标识符,可被其它语句引用 parameterType传给此语句的参数的完整类名或别名 resultType语句返回值类型的整类名或别名。注意,如果是集合,那么这里填写的是集合的项的整类名或别名,而不是集合本身的类名。(resultTy原创 2017-03-06 10:17:28 · 2039 阅读 · 2 评论 -
浅析Spring事务传播行为和隔离级别
7个传播行为,4个隔离级别。spring事务的传播行为和隔离级别[transaction behaviorand isolatedlevel]Spring中事务的定义:Propagation(key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。)有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务...原创 2017-08-08 13:51:54 · 475 阅读 · 0 评论 -
spring中dbcp、c3p0和proxool配置比较
现在常用的开源数据连接池主要有c3p0、dbcp和proxool三种。>>hibernate开发组推荐使用c3p0,spring开发组推荐使用dbcp (dbcp连接池有weblogic连接池同样的问题,就是强行关闭连接或数据库重启后,无法reconnect ,告诉连接被重置,这个设置可以解决),hibernate in action推荐使用c3p0和proxool。spring中配置原创 2017-03-06 10:14:03 · 588 阅读 · 0 评论 -
Hibernate的inverse和cascade详解
1、none:忽略其他关联的对象,默认值。2、save-update:当session通过save(),update(),saveOrUpdate()方法来保存或更新对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象。3、persist:当session通过persist()方法来保存当前对象时,会级联保存所有关联的新建的临时对象。4、merge:通过Sessio原创 2017-03-06 10:15:49 · 572 阅读 · 0 评论 -
配置Tomcat的访问日志格式化输出
在tomcat的server.xml文件中,host主机配置区域找到类似如下(红色部分)即为访问日志的配置: unpackWARs="true" autoDeploy="true"> prefix="localhost_access_log." suffix=".txt"转载 2017-08-07 10:19:00 · 636 阅读 · 0 评论 -
JVM参数-XX:+HeapDumpOnOutOfMemoryError 在哪里设置,如何设置?
1、配置方法在JAVA_OPTIONS变量中增加-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${目录}。例如:export JAVA_OPTS="-Xms2048M -Xmx2048M -Xmn682M -XX:MaxPermSize=96M"2、参数说明(1)-XX:+HeapDumpOnOutOfMemoryError参数表示当J...原创 2018-04-04 15:28:06 · 9856 阅读 · 0 评论 -
spring中@PropertySource详解
官方描述:https://docs.spring.io/spring/docs/5.1.7.RELEASE/spring-framework-reference/core.html#beans-using-propertysource描述@PropertySource 注解提供便利和声明的机制添加PropertySource 到Spring的Environment。给定一个名为app...原创 2019-05-20 00:12:34 · 5760 阅读 · 0 评论 -
Eureka 配置信息
Eureka instance一个服务,如:订单系统,会部署多台服务器,而每台服务器上提供的服务就是instance; 负载配置。Eureka service指的是服务,提供一种特定功能的服务,如:订单系统,而同一个服务可以提供多个instance;Eureka client主要将自己的服务注册到服务中心。但它既可以是服务的提供者也可以是消费者。它与Eureka instance感觉差不...转载 2018-12-14 15:16:23 · 300 阅读 · 0 评论 -
springboot中配置tomcat的access log
在tomcat的access中打印出请求的情况可以帮助我们分析问题,通常比较关注的有访问IP、线程号、访问url、返回状态码、访问时间、持续时间。在Spring boot中使用了内嵌的tomcat,可以通过server.tomcat.accesslog配置tomcat 的access日志,这里就以Spring boot 1.5.3为例。server.tomcat.accessl...转载 2019-05-16 11:32:41 · 1029 阅读 · 0 评论 -
springboot中druid配置
spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/learn username: root password: 123456...原创 2018-12-18 17:15:15 · 1049 阅读 · 0 评论 -
Spring Boot 核心配置文件 bootstrap & application 区别详解
在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstra...原创 2019-07-29 17:37:12 · 1206 阅读 · 0 评论 -
springboot设置contextPath
2.0之前可以通过在配置文件中加入配置server.context-path实现。如:server.context-path=/2.0后通过在配置文件中加入配置server.servlet.context-path实现。如: server.servlet.context-path=/ ...原创 2018-10-25 15:14:41 · 3781 阅读 · 0 评论 -
SpringBoot中@ImportResource引入XML报文档根元素 "beans" 必须匹配 DOCTYPE 根 "null"
错误代码如下:@SpringBootApplication@ImportResource("classpath:aplication.xml")public class ApplicationMain {错误原因:问题出在文件的命名上,文件名不能为application.xml,把文件名修改为其他即可解决问题。如下:@SpringBootApplication@Impor...原创 2018-10-26 14:32:08 · 922 阅读 · 0 评论 -
maven学习与使用详解
Maven,发音是[`meivin],"专家"的意思。它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把ABPM项目完全迁移并应用maven,所以对maven进行了一些深入的学习。写这个学习笔记的目的,一个是为了自己备忘,二则希望能够为其他人学习使用maven缩短一些时间。maven概要首先我把maven的概念快速的梳理一下,让我们快速地建立起一个比较精确...原创 2016-01-22 10:49:19 · 1968 阅读 · 0 评论 -
maven pom文件标签详解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0....转载 2018-08-01 16:25:48 · 352 阅读 · 0 评论 -
pom中relativePath标签
查找顺序:relativePath元素中的地址–本地仓库–远程仓库<relativePath/>设定一个空值将始终从仓库中获取,不从本地路径获取转载 2018-08-01 10:09:44 · 46828 阅读 · 4 评论 -
Maven打包常见问题
目录问题一:直接打包时system中指定systemPath文件未打包进去问题二:打包时如何跳过测试问题一:直接打包时system中指定systemPath文件未打包进去 1) 打包为jar包时,需要加入如下配置<plugin> <groupId>org.springframework.boot</groupId>...原创 2019-05-29 11:26:30 · 1305 阅读 · 0 评论 -
j8583中IsoType类型详解
基础知识BCD码:亦称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行类型描述CHAR:asc编码,即直接使用字符串的getBytes(ENCODING)方法获取字节数组的编码;BINARY原创 2016-11-21 11:09:20 · 2007 阅读 · 0 评论 -
ISO8583报文协议详解
ISO8583包(简称8583包)是一个国际标准的包格式,最多由128个字段域组成,每个域都有统一的规定,并有定长与变长之分。 8583包前面一段为位图,用来确定包的字段域组成情况。 其中位图是8583包的灵魂,它是打包解包确定字段域的关键, 而了解每个字段域的属性则是填写数据的基础。1、位图描述如下: 位图位置:1 格式:定长 类型:B16(二进制16位,原创 2016-07-18 12:10:08 · 8134 阅读 · 0 评论 -
如何使用openssl生成RSA公钥和私钥对
在ubuntu上要使用openssl的话需要先进行安装,命令如下:sudo apt-get install openssl安装完成就可以使用openssl了。首先需要进入openssl的交互界面,在命令行了输入openssl即可;1)生成RSA私钥:genrsa -out rsa_private_key.pem 1024该命令会生成1024位的私转载 2016-10-24 16:30:04 · 549 阅读 · 0 评论 -
sharding-jdbc+druid实现主从库和分库分表
设计简单表结构:CREATE TABLE sharding_db_0.`cms_merchant_0` ( `merchant_id` bigint(20) NOT NULL, `merchant_name` varchar(255) DEFAULT NULL, PRIMARY KEY (`merchant_id`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;CREATE TABLE shar原创 2021-04-17 11:58:13 · 1002 阅读 · 0 评论 -
数据库迁移方案
方案一 MQ迁移缓冲+单双写不停服,增加缓冲层(MQ)。数据迁移过程中增量数据写入缓冲MQ,在数据迁移完成、缓冲层数据消费完成后,打开开关开始双写数据库,业务验证正常后关闭旧库读写。推荐指数 ☆☆☆☆☆优点:对用户无感,有回滚方案缺点:操作成本高、方案操作节点、引入组件较多、研发和测试流程需要严格把控方案二 主动迁移+被动迁移+双写当打开开关进行迁移过程中发生数据访问时,强制将客户端要访问的数据立刻迁移(被动迁移),然后再双写处理该数据请求;同时通过外挂程序或指令将源库表数据复制到迁移目标数原创 2021-07-20 17:22:07 · 2274 阅读 · 0 评论 -
多数据源与分库分表
多数据源复制配置类即可。2.2 配置application.yml二、结合Sharding-JDBC做多数据源基础描述: : pom.xml配置application.yml相关配置application-jdbc.yml配置原创 2021-09-01 15:51:47 · 457 阅读 · 0 评论 -
TLV(tag length value) 概念描述及实例应用
概念描述标签(Tag)字段是关于标签和编码格式的信息; 长度 (Length)字段定义数值的长度; 内容(Value)字段表示实际的数值。 因此,一个编码值又称TLV(Tag,Length,Value)三元组。编码可以是基本型或结构型,如果它表示一个简单类型的、完整的显式值,那么编码就是基本型 (primitive);如果它表示的值具有嵌套结构,那么编码就是结构型 (const原创 2016-11-25 16:15:08 · 5540 阅读 · 0 评论 -
springboot自动提示元数据配置
这里以maven结构配置方式为例。如: commons-monitor\src\main\resources\META-INF\additional-spring-configuration-metadata.json ,即在项目resources目录下创建META-INF目录,再在内部创建additional-spring-configuration-metadata.json文件,如下图所示:示例文件内容如下所示:{"group": [{ "name": "common.moni.原创 2020-12-26 15:10:10 · 300 阅读 · 0 评论