Java
文章平均质量分 75
_从头再来_
不积跬步无以至千里
展开
-
SQL表列解析
POM依赖:<dependencies> <!--DOM4J --> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.1</version> </dependency> <dependency> <g.原创 2020-12-22 14:42:15 · 482 阅读 · 0 评论 -
java.io.IOException: Broken pipe
先了解一下 java.io.IOException: Broken pipepipe是管道的意思,管道里面是数据流,通常是从文件或网络套接字读取的数据。 当该管道从另一端突然关闭时,会发生数据突然中断,即是broken场景:我们平台(简称A)调用其他小组平台(简称B平台)调用方式:httpclient post请求问题:A调用B平台接口,B平台接口正常执行,但是返回结果很忽快忽慢(可能是他们接口原因),慢的时候可能***10分钟***都没有响应时间。导致结果:在并发量大的情况下A平台的该接原创 2020-05-08 21:39:57 · 1009 阅读 · 0 评论 -
java实现二维码的生成与解析
之前在做一个小项目的时候,用到了二维码技术,我同学看到我的项目后就问我怎么做到的,我一时半会也说不清,于是就想写一篇文章简单介绍一下二维码技术,下次再有同学问到,我就直接给他看我的博客就好了,哈哈。废话不多说,咱们开始吧,开始之前还是先给大家看看我在实际应用中的效果,如下图:简单介绍下二维码:二维码其实就是一种编码技术,只是这种编码技术是用在图片上了,将给定的一些文字,数字转换为一张经...转载 2020-02-15 12:31:56 · 721 阅读 · 0 评论 -
序列化详解
1、定义Serialization(序列化)为了保存在内存中的各种对象的状态,并且可以把保存的对象状态再读出来,即将对象以一连串的字节描述;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、需要实现序列化的几种情况 (1)想把内存中的对象保存到一个文件中或者数据库中时候;(2)想用套接字在网络上传送对象的时候;(3)想通过RMI传输对象的时候;转载 2018-03-28 10:54:51 · 204 阅读 · 0 评论 -
java动态编程-操作字节码
转自https://blog.csdn.net/yingxiake/article/details/51492545若想在运行时,动态编辑和创建类,通常有俩种方法1.动态编译一个类,动态编译可以参考http://blog.csdn.net/yingxiake/article/details/51487730还有http://blog.csdn.net/yingxiake/article/de...转载 2018-08-04 09:47:27 · 2203 阅读 · 1 评论 -
java读取文件内容几种方式
原地址package com.readfile;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStream;impo...转载 2018-07-30 22:16:25 · 1006 阅读 · 0 评论 -
扩展阿里巴巴Java开发规约插件
1.前言工作中难免会遇到维护别人代码的情况,那么首先就得看懂别人写的代码。如果对方写的代码混乱臃肿,维护成本必然很高,如果对方写的代码优雅清晰,那维护的人看起来必然心情愉悦。正所谓“前人栽树,后人乘凉;前人埋坑,后人骂娘”。代码首先是给人看的,其次才是给机器看到,如何编写出任何人都看到懂的代码?答案是制定规范!每个公司都会有自己的编码规范,但是往往的情况是赶项目进度或者懒惰或者个人...转载 2018-07-31 23:39:30 · 357 阅读 · 0 评论 -
Eclipse插件安装常见方法
Eclipse插件的安装方法大体有以下几种:第一种:直接复制法 假设Eclipse的安装目录在C:\eclipse,解压下载的eclipse 插件或者安装eclipse 插件到指定目录文件夹,打开安装文件夹,在安装文件夹里的根目录分别包含两个文件夹features和plugins ,然后把两个文件夹里的文件分别复制到C:\eclipse下所对应的文件夹下的features 和plugin...原创 2018-07-31 23:44:30 · 155 阅读 · 0 评论 -
Java读取工程里的文件
我们会经常遇到这样的问题,工程里有一个文件,Java程序要读取这个文件,不采用绝对路径的方法,而使用相对路径来读取文件。以后迁移到其他机器上就不会出现读取文件失败的问题了。以下就介绍java如何读取相对路径的文件。1.java project环境,使用java.io用相对路径读取文件的例子: *目录结构: DecisionTree |___src ...转载 2018-07-28 08:54:06 · 8847 阅读 · 0 评论 -
Java中初始化块和静态初始化块的区别
http://www.cnblogs.com/woshijpf/articles/3632489.html 在Java中,有两种初始化块:静态初始化块和非静态初始化块.静态初始化块:使用static定义,当类装载到系统时执行一次.若在静态初始化块中想初始化变量,那仅能初始化类变量,即static修饰的数据成员.非静态初始化块:在每个对象生成时都会被执行一次,可以初始化类的实例变量.非静态...转载 2018-07-28 08:56:14 · 2527 阅读 · 0 评论 -
权限控制-Shiro
一:问题的引入前面虽然基本的功能都有了但是页面按钮的控制与url的控制还是没有处理。这么一个场景,虽然用户只能通过点击菜单进行各个界面的访问,假如用户知道了你的界面的访问url,直接跳过菜单访问的话,正常来说是不应该跳转到对应的界面上的。如果不对其进行控制,也会造成权限混乱的。就像下图这样:可以看出菜单中确实没有权限资源控制这个菜单,按道理是无法进去那个界面的。也做到了权限的控制。但是...转载 2018-08-11 09:30:41 · 437 阅读 · 0 评论 -
权限控制-Shiro2
首先看先自定义的Realm: /** * 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用. */ @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { SimpleAuthorization...转载 2018-08-11 09:34:09 · 239 阅读 · 0 评论 -
Java字节码操纵框架ASM快速入门
ASM 是一个 Java 字节码操纵框架。它可以直接以二进制形式动态地生成 stub 类或其他代理类,或者在装载时动态地修改类。ASM 提供类似于 BCEL 和 SERP 之类的工具包的功能,但是被设计得更小巧、更快速,这使它适用于实时代码插装。本篇内容使用ASM动态生成java类和方法在阅读本文之前,需要对JVM有所了解,class文件格式,JVM指令等等先加入ASM的依赖 &...转载 2018-08-04 09:45:13 · 1500 阅读 · 0 评论 -
Java加密解密之非对称加密
非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。使用公钥加密的,要使用私钥解密。反之,使用私钥加密的,要使用公钥解密。和对称加密的区别是:对称加密:加密和解密时使用的是同一个秘钥非对称加密:加密和解密时使用的是不同的秘钥非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘...转载 2018-08-04 09:41:37 · 397 阅读 · 0 评论 -
如何成为一名资深Java架构师?
1架构师是什么?要想往架构师的方向发展首先要知道架构师是什么?架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。架构师在软件开发的整个过程中起着很重要的作用。说的详细一些,架构师就转载 2018-04-18 11:30:58 · 296 阅读 · 0 评论 -
Netty
1.为什么选择Netty上一篇文章我们已经了解了Socket通信(IO/NIO/AIO)编程,对于通信模型已经有了一个基本的认识。其实上一篇文章中,我们学习的仅仅是一个模型,如果想把这些真正的用于实际工作中,那么还需要不断的完善、扩展和优化。比如经典的TCP读包写包问题,或者是数据接收的大小,实际的通信处理与应答的处理逻辑等等一些细节问题需要认真的去思考,而这些都需要大量的时间和经历,以及丰富转载 2018-04-25 10:51:28 · 215 阅读 · 0 评论 -
Remote operate server
1. create a web project like bellow:2. configure file3. add a.jsp file <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><%@ page import="java...原创 2018-05-10 10:53:57 · 428 阅读 · 0 评论 -
spring boot教程
一.什么是spring bootTakes an opinionated view of building production-ready Spring applications. Spring Boot favors convention over configuration and is designed to get you up and running as quickly as ...转载 2018-06-03 12:04:06 · 202 阅读 · 0 评论 -
Thrift远程调用示例
thrift是facebook研发的跨语言的RPC框架,这次我们来编写一个thrift调用的示例。需要首先定义一个数据结构,用文本编辑器,然后通过thrift编译成不同语言的文件,这是实现跨平台的关键步骤,这次我演示的是将定义的数据结构文件编译成java的类。1.首先去thrift官网下载编译工具。(windows下是thrift-[版本号].exe)我们用文本编辑器定义一个简单的数据结构,...转载 2018-05-23 22:46:42 · 2871 阅读 · 0 评论 -
命令行运行jar 并传参数
1.首先新建Test.java Java代码 public class Test { public static void main(String[] args) { String str = args[0]; System.out.println(str); } } 12345672.javac Test.java 3...原创 2018-07-07 08:28:12 · 15285 阅读 · 1 评论 -
QuickFix/J
FIX简介 在正式开始的时候,我们应该介绍点背景。技术人员最缺的是什么?是什么?什么?么》!表达。 FIX的英文全称为Financial Information eXchange(金融信息交换协议),1992年多个致力于提升其相互间交易流程效率的金融机构和经纪商共同发起制定。这些企业把他们及他们的行业视为一个**整体**,认为能够从对交易指示,交易指令及交易执行的高效电子数据交...转载 2018-07-26 00:33:53 · 1897 阅读 · 0 评论 -
Apache-mina2
目录引言. 3一. Mina入门. 3第一步.下载使用的Jar包. 3第二步.工程创建配置. 4第三步.服务端程序. 4第四步.使用telnet命令来测试服务端. 6第五步.客户端程序. 9第六步.长连接VS短连接. 11第七步.入门程序0212第八步.入门程序0317二. Mina基础. 212.1.IoService接口. 222...转载 2018-07-26 00:42:58 · 741 阅读 · 0 评论 -
Java加密解密之数字签名
转自https://blog.csdn.net/mn960mn/article/details/78177250上一篇帖子,我们讲了MAC(消息认证码),它可以验证身份和防篡改。它的机制是通过通信双方都持有相同的秘钥去实现,秘钥相同摘要才相同,没有秘钥就不能生成正确的摘要信息。但是,它有个缺点,就是通信双方必须持有相同的秘钥,解决方法就是使用数字签名数字签名(又称公钥数字签名、电子签章)...转载 2018-08-04 09:25:19 · 553 阅读 · 0 评论 -
使用MyBatis Generator自动生成实体、mapper和dao层
通过MyBatis Generator可以自动生成实体、mapper和dao层,记录一下怎么用的。主要步骤: 关于mybatis从数据库反向生成实体、DAO、mapper: 参考文章:http://www.cnblogs.com/wangkeai/p/6934683.html第一种方式:main方法运行(推荐) 1.在pom.xml中加入插件依赖: 2.写mbgConfi...转载 2018-10-20 21:01:50 · 241 阅读 · 0 评论 -
shiro框架的四中权限控制方式
一.在自定义的realm中进行权限控制 在applicationContext.xml文件中添加 /areaAction_pageQuery.action = perms["area"] <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> ...转载 2018-10-20 21:05:56 · 204 阅读 · 0 评论 -
meter插件的使用-线程组
一、线程组1、jp@gc - Stepping Thread Group,如下图:类似loadrunner的场景设置,解释:This Group will start 10 threads:这次的测试总共会起10个线程。First , wait for 0 seconds:等待0s后开始起线程,也就是不等待直接起线程。Then start 5 threads every 10 ...原创 2019-04-15 21:00:11 · 503 阅读 · 0 评论 -
Java操作Elasticsearch
1 添加pom.xml依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>6.3.2</vers...原创 2019-06-26 19:46:46 · 342 阅读 · 0 评论 -
Java执行JS
1 创建java类package com.common.util;import javax.script.Invocable;import javax.script.ScriptEngine;import javax.script.ScriptEngineManager;import javax.script.ScriptException;import java.io.*;...原创 2019-06-24 20:15:23 · 814 阅读 · 0 评论 -
Spring中使用@Autowired注解静态实例对象
问题最近项目小组在重新规划工程的业务缓存,其中涉及到部分代码重构,过程中发现有些工具类中的静态方法需要依赖别的对象实例(该实例已配置在xml成Spring bean,非静态可以用@Autowired加载正常使用),而我们知道,类加载后静态成员是在内存的共享区,静态方法里面的变量必然要使用静态成员变量,这就有了如下代码:@Componentpublic class TestClass {...转载 2019-07-19 17:41:22 · 279 阅读 · 0 评论 -
JS 检测网络带宽及java计算字符串长度
1、方法一第一种思路是加载一张图片,通过的加载时长和图片的大小来计算出网络带宽有了这个思路,我们可以参考如下代码:function measureBW(fn) {var startTime, endTime, fileSize;var xhr = new XMLHttpRequest();xhr.onreadystatechange = () => {if...原创 2019-08-18 16:55:52 · 534 阅读 · 0 评论 -
异步子线程RequestContextHolder.getRequestAttributes()为null
使用Spring框架,在Service中开启一个新的线程,在新的线程中使用RequestAttributes ra = RequestContextHolder.getRequestAttributes();获取出来为null,有没有什么办法能解决?问题出现的环境背景及自己尝试过哪些方法Service中为优化响应时间,使用了多线程,部分线程中使用到了RequestContextHold...原创 2019-08-07 14:09:03 · 3825 阅读 · 0 评论 -
替换过占位符的SQL日志收集,同时收集Mapper及其参数日志到指定文件
1 参数收集复写Mybatis-3.4.6以来中org.apache.ibatis.logging.jdbc.BaseJdbcLogger类中的debug方法。package org.apache.ibatis.logging.jdbc;import java.sql.Array;import java.sql.SQLException;import java.util.Arra...原创 2019-08-07 14:34:00 · 503 阅读 · 0 评论 -
java中数据精确计算及飘逸问题
问题的提出:如果我们编译运行下面这个程序会看到什么? public static void main(String args[]){ System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println(4.015*100); Syste...原创 2019-08-18 15:17:28 · 490 阅读 · 0 评论 -
跨域问题解决方案
方法一:package com.config;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import ...原创 2019-03-15 10:25:53 · 137 阅读 · 0 评论 -
JWT全面解读、使用步骤
JWT全面解读JWT全面解读前言JWT基本使用 在pom.xml引入java-jwt 示例如下概念介绍 JWT消息构成 头部 playload 标准中注册的声明 (建议但不强制使用) 自定义数据 签名signatureJJWT 引入 使用方法 生成token 解析toke...转载 2019-02-28 18:33:31 · 878 阅读 · 0 评论 -
Mongodb与spring集成 MongoRepository实现增删改查和复杂查询
与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoRepository<T, TD>接口,其中T为仓库保存的bean类,TD为该bean的唯一标识的类型,一般为ObjectId。之后在service中注入该接口就可以使用,无需实现里面的方法,spring...转载 2019-02-15 22:51:31 · 634 阅读 · 0 评论 -
自开发添加swagger map类型参数说明
1 添加maven<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version></dependency>原创 2018-12-24 11:47:08 · 16069 阅读 · 3 评论 -
java rmi 与 spring mvc rest 性能简单对比
场景描述:服务端用rest和rmi发布两个接口,两个接口提供同样的功能,获取同一个bean;服务端用httpclient和rmi分别起十个线程调用,打印时间;废话少说,程序猿用代码说话: 首先定义一个Bean:package net.tt.rest.domain; import java.io.Serializable; import lombok.Data; /**...转载 2018-11-27 11:47:04 · 348 阅读 · 0 评论 -
深入理解Lombok
说道Lombok,可能会鲜为人知。但是在实际的开发中,它起到了很大的作用,话不多说,直入正题:一、Lombok是什么 现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可...转载 2018-11-27 15:39:17 · 195 阅读 · 0 评论 -
DevOps介绍及工具推荐
什么是DevOpsDevOps是Development和Operations的组合,是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。可以把DevOps看作开发(软件工程)、技术运营和质量保障(QA)三者的交集。传统的...转载 2018-12-06 14:56:23 · 473 阅读 · 0 评论