![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
耳东的慢生活
这个作者很懒,什么都没留下…
展开
-
解决“XML Parser Error on line 1: 前言中不允许有内容“错误
可能是问题原因不同,网上各种解决方案,这里说一下我的解决思路:1.确定XML字符集和项目的运行环境(idea或者服务器)的字符集是否一致,不一致则可能是字符问题导致的2.如果都是utf8,则看一下是不是都是with no bom(经过一些软件编写后可能是带有bom的)3.上面都没有问题,发现xml文件在解析式标签被转译了。找到是前端转译还是后端转译。我的问题是因为网关中有XssFilter会对浏览器传的尖括号转译,修改相关代码问题解决。...原创 2021-12-13 10:06:11 · 7711 阅读 · 1 评论 -
Java 导入导出JSON文件
package com.test.utils;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.serializer.SerializerFeature;import com.test.commons.rest.RestErrorEnum;import com.test.commons.rest.RestException;import org.apache.commons.io.FileUtils;import org.原创 2021-10-26 10:10:20 · 1578 阅读 · 0 评论 -
java 文件操作(压缩、解压、上传、下载、复制、加密等)
package com.test.file.utils;import com.test.commons.rest.RestErrorEnum;import com.test.commons.rest.RestException;import com.test.file.entity.FileInfo;import com.test.filestruct.plm.file.DocxStructExplorer;import lombok.extern.slf4j.Slf4j;import or.原创 2021-10-26 10:06:57 · 646 阅读 · 0 评论 -
java -jar 指定字符集、端口、debug
java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n -jar demo.jar 远程debug端口8000java -Dfile.encoding=utf-8 -jar XXX.jar 指定字符集java -jar springboot jar --server.port=8181 指定端口java -jar springboot jar --spring.profiles.active=dev 指.原创 2021-05-07 10:46:56 · 2789 阅读 · 0 评论 -
mybatis update set if
<update id="updateNotebookMaterial" parameterType="NotebookMaterial"> update eln_notebook_material <set> <if test="notebookMaterial.purpose != null and notebookMaterial.purpose != ''"> PURPOSE .原创 2021-03-04 09:39:14 · 512 阅读 · 1 评论 -
idea引入gradle build出现问题
因为问题造成的原因可能有多种,我说一下我遇到的问题:可以正常编译成功、可以刷新,但是lombok没有生成对应的代码:从截图中可以看到:lombok 需要开启Annotation Processing.开启方法:原创 2020-12-29 09:13:48 · 2249 阅读 · 0 评论 -
@PathVariable 传Double丢失精度
1.精度丢失的情况:2.解决方案: @ApiOperation(value = "入库") @RequestMapping(path = "/{id}/stockNum/{stockNum:.*}", method = RequestMethod.PUT) @BindingResultChecker public void stock(@PathVariable Long id, @PathVariable Double stockNum) { .原创 2020-12-16 16:36:26 · 195 阅读 · 0 评论 -
JAVA 集合框架优化之list.removeAll大数据量优化
参考了几篇网上的文章,自己测试了一下效率,最后选取如下方法:public <T> List<T> removeAll(List<T> source, List<T> dest) { List<T> result = new LinkedList<>(); Set<T> destinationSet = new HashSet<>(dest); for(T t原创 2020-09-12 10:58:24 · 902 阅读 · 1 评论 -
@Autowired 与 @Resource 简单总结比较
1.@Autowired是默认按照类型装配的,可以对成员变量、方法以及构造函数进行注释,而 @Qualifier 的标注对象是成员变量、方法入参、构造函数入参。 @Resource默认是按照名称装配的byName @Resource装配顺序 1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常 2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常 3. 如果指定了type,则...原创 2020-07-29 10:32:28 · 164 阅读 · 0 评论 -
mybatis 使用concat 模糊查询
concat() 函数用于将多个字符串拼接成一个字符串本举例:keyWord为空查询所有,keyWord不为空,检索所有contact中所有字段匹配的内容。注意:所有字段需要IFNULL判断,否则某字段为空可能会导致查询结果丢失一条记录...原创 2020-07-29 09:34:52 · 2704 阅读 · 0 评论 -
Springboot 使用BindingResult和自定义注解统一校验参数
1.参数定义:(注意:@NotEmpty用在集合类上面 ,@NotBlank用在String上面 , @NotNull用在基本类型上)2.controller 代码:3.自定义注解:4.注解AOP:(切面的统一处理逻辑根据各自项目自行实现)原创 2020-07-27 14:36:35 · 1879 阅读 · 0 评论 -
在Controller层获取http请求头信息
@HeaderParam @Context用法实例:import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.core.Context;import javax.ws.rs.core.HttpHeaders;import javax.ws.rs.core.Response;@Path("/users...原创 2019-12-19 10:58:00 · 5267 阅读 · 0 评论 -
BigDecimal 做精确运算
1. add() 加法2.substrict()减法3.multiply() 乘法4.divide() 除法注意:1)System.out.println()中的数字默认是double类型的,double类型小数计算不精准。2)使用BigDecimal类构造方法传入double类型时,计算的结果也是不精确的!因为不是所有的浮点数都能够被精确的表示成一个double ...原创 2019-12-19 10:49:16 · 153 阅读 · 0 评论 -
java map按照key-value排序
//needToSortMap : 按照value升序排列Map<String, String> sortedMap = new LinkedHashMap<String, String>();List<Map.Entry<String, String>> entryList = new ArrayList<Map.Entry<St...原创 2019-10-31 15:42:46 · 146 阅读 · 0 评论 -
HttpClient对象的应用与总结
1.特性1. 基于标准、纯净的java语言。实现了Http1.0和Http1.12. 以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。3. 支持HTTPS协议。4. 通过Http代理建立透明的连接。5. 利用CONNECT方法通过Http代理建立隧道的https连接。6. Basic, Di...转载 2018-06-26 10:43:26 · 1033 阅读 · 0 评论 -
String 转 LocalDateTime 并比较时间范围
private static Boolean compare(String lowerBound, String upperBound, String createTime) { DateTimeFormatter dfFrontEnd = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFor...原创 2019-03-25 17:35:30 · 5236 阅读 · 0 评论 -
java 比较IP大小 & 判断IP是否在IP段内
public class IpUtil { /*验证IP是否属于某个IP段 * * ipSection IP段(以'-'分隔) * ip 所验证的IP号码 * */ public static boolean ipExistsInRange(String ip,String ipSection) {...原创 2019-05-14 16:39:01 · 4566 阅读 · 0 评论 -
高并发高可用框架进阶必备技术
每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行等一系列问题与挑战。为此,在实践中提出了许多解决方案,以实现网站高性能、高可靠性、易伸缩、可扩展、安全等各种技术架构目标。reference:https://blog.csdn.net/u010...转载 2019-05-30 10:23:48 · 260 阅读 · 0 评论 -
VMware 安装CentOS JDK Nodejs
安装CentOS参考:https://www.jianshu.com/p/ce08cdbc4ddb?utm_source=tuicool&utm_medium=referral注意:最新版的CentOS安装步骤可能是博客上有部分区别,但是并不影响。建议下载DVD的镜像包,Minimal缺了太多东西,很多命令需要重新安装包后才能用。在图形界面使用 ctrl+alt+F2切换到dos界面...原创 2019-05-29 10:11:32 · 161 阅读 · 0 评论 -
OpenDaylight开发-DataStoreChange监听器三种类型
OpenDaylight中的所有数据都保存在DataStore中,并且数据以树形结构存储,可参考OpenDaylight开发中的介绍。外界对DataStore的访问有BA和BI两种方式,这两种方式具有映射关系,BI像是BA的底层实现,通过QName实现对数据的索引,而BA更像是在BI上的封装,不能以BI的方式对数据进行准确的索引,但是提供了更方便的调用接口等。由于数据存储在DataStore中,...转载 2019-09-24 10:28:25 · 600 阅读 · 0 评论 -
java 获取linux 服务器内存大小、cup使用率、内存大小和使用率
代码参考了很多博客,这里就不一一贴出原链接了,感谢!返回大小单位是M,返回的数据也不是百分比的这种,后期可以自行优化。1.获取cpu使用率:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter...原创 2019-03-25 17:29:17 · 2202 阅读 · 0 评论 -
org.xml.sax.SAXParseException
ERROR:Caused by: org.xml.sax.SAXParseException: cvc-datatype-valid.1.2.1: 'org.opendaylight.mdsal.binding.api.NotificationPublishService;' is not a valid value for 'NCName'.原因:xml格式出错,复制的内容有问题。解决办...原创 2019-03-20 15:23:12 · 696 阅读 · 0 评论 -
JAVA判断对象是否为null
1.String : StringUtils.isEmpty(xxx)2.Class: Objective.isNull(xxx)3.Collection: CollectionUtils.isEmpty(xxx)不要写null==xxx原创 2018-07-31 11:22:37 · 2955 阅读 · 0 评论 -
UT&IT
UT (常用注解):@RunWith(Junit4.class): 不需要依赖spring,可以当做单线程来运行,需要Mock数据@Before //在方法运行前执行,本例先mock出一个daopublic void setup() { newsDao = Mockito.mock(INewsDao.class); newsService = new NewsServic...原创 2018-07-31 10:31:45 · 544 阅读 · 0 评论 -
使用maven插件构建微服务的Docker镜像
1.在服务中pom中添加插件 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</ve...原创 2018-07-05 15:19:20 · 966 阅读 · 0 评论 -
RabbitMQ AmqpTimeoutException
org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTr...原创 2018-06-27 18:39:15 · 6119 阅读 · 0 评论 -
restful在项目中的应用总结
restful 开发规范1.URL命名规则:1.1. URL命名原则1、 URL请求采用小写字母,数字,部分特殊符号(非制表符)组成。2、 URL请求中不采用大小写混合的驼峰命名方式,尽量采用全小写单词,如果需要连接多个单词,则采用连接符“_”连接单词1.2. URL分级第一级Pattern为模块,比如组织管理/orgz, 网格化:/grid第二级Pattern为资源分类或者功能请求,优先采用...原创 2018-06-25 14:50:27 · 972 阅读 · 0 评论 -
HttpClient+NTLM认证
1.HttpClient的使用步骤1)创建HttpClient对象(项目中之前用的是CloseableHttpClient,这个对象无法使用NTLM认证,我换成了DefaultHttpClient)2)创建请求方法的实例,并指定URL,根据请求方式的不同创建HttpGet或HttpPOST请求3)如果需要发送请求参数,可以调用HttpGet/HttpPost共同的setParams(HetpPar...原创 2018-06-13 13:58:10 · 2327 阅读 · 2 评论 -
怎么在一个微服务中调用另一个微服务
1.一个微服务最好对应一个数据库schema,如果需要参数需要其它schema表中参数,调用对应schema其对应微服务所暴露出来的api。(*****)2.原创 2018-05-23 15:38:33 · 27888 阅读 · 0 评论 -
JAVA对象总结
1.POJO (plain old java object) : 普通的java对象,有别于特殊的java对象(含继承约束等)和EJB。POJO一般只有一系列的属性和相应的get、set方法。2.PO (persistent object) : 持久化对象,有别于POJO,必须对应数据库中的实体。一个PO对应数据库的一条记录。持久化对象的生命周期与数据库密切相关,只能存在于connection之中...原创 2018-05-21 10:44:36 · 157 阅读 · 0 评论 -
Java 对象的字段是枚举类型在mybatis中怎么做映射
1.写一个对应枚举的工具类:import java.sql.CallableStatement;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import org.apache.ibatis.type.BaseTypeHandler;import org...原创 2018-08-30 18:32:43 · 3594 阅读 · 0 评论 -
Mybatis 使用java8日期对象 LocalDate、 LocalDateTime
1.在pom.xml中加入 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-typehandlers-jsr310</artifactId> <version>${mybatis.typehandler...原创 2018-08-28 10:40:04 · 2508 阅读 · 0 评论 -
ODL Transaction
在ODL框架中可能用到的事物按功能划分:普通事物和跨网元事物。按事物类型分为:读事物(ReadTransaction)写事物(WriteTransaction)读写事物(ReadWriteTransction)事物的常用操作方式read put delete merge submit(跨网元事物只有submit) commit cancle事物的提交方式分为同步和异步同步:t...原创 2019-02-27 19:50:52 · 364 阅读 · 0 评论 -
List.sort()方法使用
List.sort是在Java8中的,直接使用的话,感觉也挺方便,如下图:(ps:Collections.sort(list) 这个是在Java8之前常用的,比较对象,需要对象重写compareTo方法)...原创 2019-01-30 09:56:40 · 95529 阅读 · 4 评论 -
ODL MD-SAL Data Transactions
项目框架:OpenDaylight=============散扯分割线==========================和Spring这种成熟的Java框架相比,可能ODL还有所欠缺。不过正是这种欠缺,可以帮助我更好的对框架的一些底层实现,有着更好的帮助。================================================Transactions:1...原创 2018-12-04 09:28:24 · 490 阅读 · 1 评论 -
使用postman路径传参时带特殊符号
今天在测一个接口的时候,刚好碰到URL带特殊符号的,所以趁这个机会总结一下:因为服务端可能没办法正确解析url上的特殊符号,所以传参时请按照对应规则进行转译:+ %2B/ %2F? %3F% %25# %23& %26如果这里没有你需要的,请查阅:https://www.cnblogs.com/rockdean/art...原创 2018-11-29 16:38:34 · 7047 阅读 · 0 评论 -
Optional
我们平常用的Optional类所在包:com.google.common.base 注意,在java.util包下的不常用,方法也不多。 1.创建一个Optional:1)Optional.of() : 参数不可以为null,否则会报错2)Optional.ofNullable() :参数可以为null3)Optional.absent() 2.查询结果用Optional封装...原创 2018-11-16 17:20:59 · 255 阅读 · 1 评论 -
maven settings 文件位置
一般在企业中我们都会在maven 的settings文件中配置代理什么的,用来去公司的仓库中拉取代码。在入职第一天,除了安装开发环境,我想最重要的就是找同事要settings文件的内容了吧!settings默认位置D:\xxx\apache-maven-3.5.4\conf ==>在你安装maven的目录下的conf文件夹下我们也可以将settings放到C盘C:\Users\xx...原创 2018-11-14 11:21:37 · 7504 阅读 · 0 评论 -
eclipse: this compilation unit is not the build of a java project
我用的版本: eclipse version :4.9.0 (2018.09)我是自己创建的Java项目,有一些代码是自动生成的,但是在我准备编辑的时候,每次输入都会报这个错。我以前从来没遇到过,不知道是不是eclipse版本问题。解决方案:1.在项目根目录的.project中加入:(我试了一下,不行)<natures> <nature>org.eclip...原创 2018-11-01 10:13:21 · 628 阅读 · 0 评论 -
微服务编排层编写原则以及对各个微服务调用的实现
背景:微服务开发应该按照功能模块来划分各个微服务,各个微服务为了实现高内聚低耦合,应该实现分库分表,即一个微服务对应一个数据库schema。 但是我们的业务需求可能需要各个微服务之间的拼接,我的建议是编写编排层,不要在底层join其它schema的表 编排层:根据业务需求调用微服务底层的api,组装前端所需要的数据 项目中的应用:1.在编排层创建实体类(常量的值应该与服务在注册...原创 2018-08-28 11:07:24 · 3898 阅读 · 0 评论