java
_自由之子_
这个作者很懒,什么都没留下…
展开
-
spring boot web 返回空数据
今天偶然写了一个web api,发现在swagger返回的结果是如下,返回的应该是一个有3个元素的数组,但是这个空就有点奇怪了.在源代码里打印并且端点调试 也是正常的.[{},{},{}]后来发现是,返回的pojo文件里,没有@data注解,也就是说没有get/set方法,那么spring mvc没有办法拿到拿到返回pojo的内部属性,所以显示的结果只能是空.这个太坑爹了,因为这个POJO文件我是复制别人的…...原创 2020-10-29 18:48:00 · 444 阅读 · 0 评论 -
spring boot 生成 war tomcat 运行
两个坑.war.original 生成这种格式的文件,是因为在开启了二次打包。具体可以看这里修改入口文件的配置 , 官方文档看这里类似下面的代码,要继承SpringBootServletInitializer @SpringBootApplicationpublic class Application extends SpringBootServletInitialize...原创 2018-03-17 17:43:32 · 1327 阅读 · 1 评论 -
spring 3.2.x 源码 构建 编译 备忘录 以及 导入 idea 工程
环境:windows 7 64位IDEA 2017.3 64位JDK8 64 位 8u162 JDK8 下载GRADLE 2.14.1准备工作1.设置JAVA_HOME,设置GRADLE_HOME,java和gradle的bin要放在windows的path里。 2.GitHub 下载spring源码,这里是3.2.x,记得切换在网页上切换分支,或者直接clone下来切换到3.2.x 。原创 2017-12-13 11:31:17 · 1608 阅读 · 0 评论 -
Kafka 0.11.0.2 安装备忘录
Kafka 0.11.0.2 安装备忘录本文基于 Kafka 0.11.0.2的安装,环境 Centos 6 / Centos 7服务器共3台,用来安装Kafka集群和ZK集群 服务器名 IP zk myid Kafka broker ID zk1 10.20.32.113 1 1 zk2 10.20.32.114 2 2 zk3 10.20.3原创 2017-11-23 15:28:30 · 1737 阅读 · 0 评论 -
MongoDB 3.6 资料汇总
Linux 下源代码按照步骤 查看官方JAVA API资料查看修改默认IP,运行外部请求访问,使用 –bind_ip_all参数配合启动mongod --bind_ip_alljson转bson,附上官方的例子原始连接String inputFilename; // initialize to the path of the file to read from原创 2017-12-18 10:28:12 · 3314 阅读 · 0 评论 -
maven build jar包的时候,在当前的lib目录自动引入依赖包
在Pom里针对build增加如下的插件配置。 <build> <finalName>xxx-demo-project</finalName> <resources> <resource> <targetPath>${project.build.directory}/classes</targetPath>原创 2017-08-10 20:04:06 · 10063 阅读 · 0 评论 -
spring事务不能回滚 异常捕获不抛出
默认spring只在发生未被捕获的runtimeexcetpion时才回滚。 最笨的办法:代码级控制:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 为何在aop advitor中配置rollba-for=“java.lang.Exception”异常时不回滚呢?转载 2017-05-12 11:18:54 · 362 阅读 · 0 评论 -
Spring 事物对系统性能影响
背景:公司使用的自己封装的分库分表的中间件,配合Spirng的事物,实现数据库访问功能。优化前的针对某接口的TPS只有30左右 接口调用Spring事物的伪代码public void A(){B();}public void B(){ //do somethings //Mysql 具体事务逻辑 增删改查 // do something}事物配置针对方法A<tx:method na原创 2017-05-22 17:28:19 · 3253 阅读 · 0 评论 -
如何 简单确定系统 合理的线程数
和大牛聊天的时候得知,可以这么来 比如针对IO密集型的程序,一个请求时间是1秒的话,假如其中200ms是用在CPU上,800ms用在IO上,同时系统是8核的话,那么理论上系统的合理线程数是(1+4)*8=40个,另外考虑实际情况,系统的消耗等,应该是40*0.6或者0.7约等于24或者28个。大概如此了。。先行记录下来原创 2017-04-24 14:05:00 · 1680 阅读 · 0 评论 -
mokito matchers when的坑
有如下需要测试的代码,主要是这个basedao我需要mock一个指定的返回值 List<UserSite> oldUserSitelist = this.baseDao.queryForList(PREFIX + "queryListForUserSite", param0, UserSite.class);一开始写的版本 when(baseDao.qu原创 2017-04-21 14:02:34 · 711 阅读 · 0 评论 -
java thread dump 分析 死锁
昨天看到有人问:”一个程序在运行的时候,如何知道它是否发生死锁,如果发生死锁,如何找到发生死锁的位置?“;便贴了一段dump线程的数据,今天又有人问我怎么从dump文件中分析死锁,随做此文: 1、首先构造死锁,代码如下:public class Deadlocker { private static Object lock_1 = new int[1]; private s转载 2016-12-08 20:25:06 · 3975 阅读 · 0 评论 -
java -D 参数 作用
-Dxxx可以代表自定义参数#JVM arg-Dmyarg='66666'package com.company;public class Main { public static void main(String[] args) { System.out.println("111"); System.out.println(System.getProper原创 2016-11-24 15:13:14 · 2003 阅读 · 0 评论 -
字符串 比较 避免 null pointer exception
修改前if (bookType.equals("CANCELLED")) {修改后if("CANCELLED".equals(bookType)原创 2016-12-12 17:50:07 · 326 阅读 · 0 评论 -
maven 引入/导入 添加 spring 3 依赖
在pom.xml里添加如下内容.spring 默认版本3.2.6,其他的3.x版本列表可以看这里 <!-- Shared version number properties --> <properties> <org.springframework.version>3.2.6.RELEASE</org.springframework.version> </proper原创 2017-12-13 13:58:41 · 3131 阅读 · 0 评论 -
MyBatis3错误
Available parameters are [arg2, arg1, arg0, param3, param1, param2]有如下定义的Mybatis多参数条件的参数查询,这样在select语句写,是错误的.int checkEmailByUserId( String email,Integer userid); select id="checkEmailByUserId原创 2018-01-26 20:11:04 · 239 阅读 · 0 评论 -
zuul 巨坑 跨域 请求 正常 但没有返回 结果
问题描述公司spring cloud 项目使用 zuul 2.0,调试跨域,发现使用postman 发送请求正常,但是使用浏览器访问则是请求返回200 成功,但是实际后端的结果并没有返回,全是空的.非常让人抓狂.问题解决修改zuul配置,转发head信息到后端,问题解决zuul: sensitive-headers: Access-Control-Allow-Origin,Ac...原创 2019-07-13 20:28:08 · 3159 阅读 · 7 评论 -
com.netflix.zuul.exception.ZuulException: Forwarding error 报错问题
*** 网上搜了一圈,各种原因导致的报错,但是结合我自身的情况,应该是超时了 ***所以zuul 的gateway里加入了如下配置,发现可以了,这个确实有点坑 host: socket-timeout-millis: 12000 connect-timeout-millis: 12000...转载 2019-06-27 15:50:46 · 4724 阅读 · 1 评论 -
springboot 使用 redis starter 低级错误
很久没有用Redis了,最近使用SpringBoot 配置Redis的时候,使用RedisTemplate出现了空指针原始代码如下public class DemoController { @Autowired RedisTemplate<String,Long> redisTemplate;后来把注解改为@Resources,就能跑了,百思不得其解,于是尝试...原创 2019-01-21 11:55:26 · 317 阅读 · 0 评论 -
spring-boot-starter-elasticsearch xpack 问题
以下转载自博客: https://my.oschina.net/lizaizhong/blog/1611182官方spring-boot-starter-elasticsearch的问题前提:Spring Boot的版本用的是1.5.2.RELEASESpring Boot官方提供了: &lt;dependency&gt; &lt;groupId&gt;org.s...转载 2018-11-07 09:49:14 · 2262 阅读 · 0 评论 -
Mac 压测 卡主 问题
MAC 下通过 jemeter对spring boot 程序进行压测问题描述:无论指定线程数为多少,运行一段时间(5-20秒)左右,jemeter就会卡死,过一段时间(15-20秒)恢复,如此往复,更换JDK版本,增大MAC的文件描述符大小都没有效果.解决方法:首先排除代码问题,同样的代码windows工作正常.怀疑是系统哪里被限制(参考Linux增大了文件打开数量,但还是不...原创 2018-10-15 15:36:50 · 1532 阅读 · 2 评论 -
记一次 奇怪的 java.lang.NoSuchMethodError
主要思路,依照这个兄弟的博客 https://www.jianshu.com/p/87d2eee60df0吧错误方法的全类名称放在IDEA里搜索,果然发现了有冲突的包,去掉即可转载 2018-08-15 15:51:50 · 707 阅读 · 0 评论 -
jackon 封装 自定义 泛型 导致 ClassCastException
写法问题,以下是原代码 public <T> List<T> parseListFromJson(String rawStr,Class<T> clazz) { List<T> list = null; try { list = JsonUtils.getObjectMap...原创 2018-08-02 11:56:48 · 249 阅读 · 0 评论 -
dubbo auowired resoucezh注解zhua装配失败
在对应的属性上加上@set注解,就可以了原创 2018-07-10 11:44:52 · 222 阅读 · 0 评论 -
Execution default of goal org.springframework.boot:spring-boot-maven-plugin: XXXX .RELEASE:repackage
Spring boot 执行打包操作时候,报错如下 Execution default of goal org.springframework.boot:spring-boot-maven-plugin:XXXX RELEASE:repackage failed: Unable to find main class根源为,在我的项目场景下, 只有如图的-boot子模块生产可执行JAR包...原创 2018-06-07 16:57:33 · 18810 阅读 · 5 评论 -
Spring boot 启动 jar linux 下 命令行样本
#!/bin/sh### java env#export JAVA_HOME=/xxxx#export JRE_HOME=$JAVA_HOME/jre## service name## 服务所在目录export SERVICE_DIR=/home/admin/xxx/## 服务名称SERVICE_NAME=xxxJAR_NAME=xxx-boot-1.0-SNAPSHOT.j...原创 2018-05-09 15:48:46 · 796 阅读 · 0 评论 -
java 循环 map list 使用普通方法和lambda 以及 Method Reference
循环Map普通版Map<String, Integer> items = new HashMap<>();items.put("A", 10);items.put("B", 20);items.put("C", 30);items.put("D", 40);items.put("E", 50);items.put("F", 60);for (Map.Entry<String, Integ原创 2016-09-07 14:16:21 · 7599 阅读 · 0 评论 -
eclipse 招不到 javax.servlet.* 的解决方法
默认导入的项目是web类型,这个包可以从tomcat里引入,具体方法就是, 先配置tomcat服务器 然后在项目根目录上单击右键,选择tomcat project—》Add tomcat libraries to project ….具体可以看图 导入成功以后,可以看到引入了tomcat里的包,错误提示也没有了。。原创 2016-09-06 21:58:25 · 333 阅读 · 0 评论 -
Jersey 配合 Jackson 输出 json
1. 依赖 <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-server</artifactId> <version>1.8</version></dependency><dependency> <groupId>com.sun.jersey</groupId> <arti转载 2016-09-06 15:40:08 · 1709 阅读 · 2 评论 -
Netty解决粘包问题(2) 定长填充
第二种解决粘包的方案,就是每次发送固定长度的数据包,如果长度不够,那就用空字符串填充import java.nio.ByteBuffer;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.原创 2016-08-31 20:38:19 · 498 阅读 · 0 评论 -
并发控制(6)ReentrantLock 重入锁
并发控制(6)ReentrantLock 重入锁这个锁基本上概念和synchronized关键字用法很像,但是在实现上和使用上的稳定性上貌似比synchronized要好.但是你在调用锁的时候,要注意释放,不然就麻烦了。。。其他线程没有办法使用资源了有如下代码import java.util.concurrent.CopyOnWriteArrayList;import java.util.原创 2016-08-21 20:19:53 · 271 阅读 · 0 评论 -
并发控制(5)使用CountDownLatch来控制多线程下的程序流程
并发控制(5)使用CountDownLatch来控制多线程下的程序流程CountDownLatch和CyclicBarrier的区别,其实比较简单,CountDownLatch对执行任务的线程。比如有A,B,C三个线程,那么如果A是设置了countDown.await()这个方法,那么B和C就只能等到A了,什么时候A准备好了,那么B和C才可以执行.典型的场景就是,比如A需要从远程服务器拿到某个资原创 2016-08-21 20:10:58 · 1517 阅读 · 0 评论 -
并发控制(4) 使用CyclicBarrier来控制多线程的执行流程
并发控制(4) 使用CyclicBarrier来控制多线程的执行流程简单理解就是,有A,B,C三个线程,主线程需要通过这3个线程加载制定的资源(流程),如果其中任意一个线程(资源)没有准备好,那都没有办法继续执行下去,这就是CyclicBarrier的作用,或者可以形象的理解为运动员比赛之前,需要统一准备好,才可以开始比赛import java.io.IOException; import j原创 2016-08-21 19:59:57 · 633 阅读 · 0 评论 -
Netty解决粘包问题(1) 自定义分隔符
见如下代码Client.javaimport io.netty.bootstrap.Bootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import io.netty.channel.ChannelInitializer;原创 2016-08-30 21:37:57 · 1975 阅读 · 4 评论 -
Joda 日期类简单的获取当前完整日期和当前日子的用法
Joda 日期类简单的获取当前完整日期和当前日子的用法 Date now = new DateTime().toDate(); Date today = new DateTime().withTimeAtStartOfDay().toDate(); System.out.println(now); System.out.println(today原创 2016-08-23 10:14:39 · 7517 阅读 · 1 评论 -
idea 打包包含依赖的JAR文件
第一步,选择具体的项目第二步,如图选择Main Class(如果有的话)第三步,确认一下,如图,注意mainclass和上面需要依赖的包,这里IDEA是帮我吧依赖的包解压以后放到JAR里,直接把依赖的JAR包放到你最好了生成的包里,这种貌似是不行的第四步 build 咯~~~原创 2016-08-29 23:21:42 · 19270 阅读 · 0 评论 -
String类 使用 + contact stringbuilder append 的效率问题
以下代码转载自其他博客public class StringTest { /** * @desc 使用+、concat()、append()方法循环10W次 * @author chenssy * @data 2013-11-16 * @param args * @return void */ public static vo转载 2016-09-09 11:17:52 · 6331 阅读 · 0 评论 -
对于某时区的mock的例子
这是针对基于timezone的程序的例子写的单元测试,里面用到了mock//需要被测试的对象之一 DatetimeEnricher.javapublic class SFDatetimeEnricher implements SFEnricher { final private DateService dateService; public SFDatetimeEnricher(Dat原创 2016-08-29 10:11:10 · 547 阅读 · 0 评论 -
并发控制(3) 使用double check方式的单例,来确保并发下的线程安全的单例模式
这是实现并发下懒汉模式,是线程安全的,叫做double check,另外一种是内部静态类,它们都可以实现多线程下的安全单例package com.bjsxt.base.conn011;public class DubbleSingleton { private static DubbleSingleton ds; public static DubbleSing原创 2016-08-15 21:10:50 · 828 阅读 · 0 评论 -
java并发控制(2),synchronized模拟阻塞队列
import java.util.LinkedList;import java.util.concurrent.atomic.AtomicInteger;import com.sun.org.apache.xerces.internal.parsers.CachingParserPool.SynchronizedGrammarPool;public class MyQueue { p原创 2016-08-15 20:30:24 · 920 阅读 · 0 评论 -
并发控制(7)信号量
并发控制(7)信号量Semaphore实现的功能就类似厕所有5个坑,假如有10个人要上厕所,那么同时只能有多少个人去上厕所呢?同时只能有5个人能够占用,当5个人中 的任何一个人让开后,其中等待的另外5个人中又有一个人可以占用了。另外等待的5个人中可以是随机获得优先机会,也可以是按照先来后到的顺序获得机会,这取决于构造Semaphore对象时传入的参数选项。典型的应用场景,可以是限制JAVA程序的原创 2016-08-22 16:28:57 · 408 阅读 · 0 评论