编程
神蜗牛
刚入行的萌新渣硕,想与各位大佬一起学习。
展开
-
Jackson序列化IntSet配置
public static void main(String[] args) throws IOException { ObjectMapper objectMapper = new ObjectMapper(); SimpleModule module = new SimpleModule(); module.addDeserializer(IntSet.class, new IntSetDeserializer()); objectMapper.registerModu.原创 2020-08-21 17:38:14 · 212 阅读 · 0 评论 -
java.lang.ClassNotFoundException: org/apache/commons/pool2/impl/DefaultEvictionPolicy
在使用redis的时候会报这个错,原因是comons-pool2版本低导致的,我使用的是2.3,实际上应该使用2.4区别在于2.4在用class.forName加载类时如果用当前线程上下文加载器加载不到,则使用加载BaseGenericObjectPool的类加载器加载DefaultEvictionPolicy但是只有使用ForkJoinPool的时候会发生加载不到Defau...原创 2020-03-05 16:31:18 · 405 阅读 · 0 评论 -
Spring boot的AsyncController实现
最近在项目中使用CompletableFuture做了异步处理,但是在controller层返回时遇到一个尴尬的问题,如果按照之前的处理方式,返回普通对象,势必要进行join或get,这个会造成forkJoin线程阻塞,影响吞吐量不说,如果请求量较大,可能会把整个程序拖垮。AsyncController 就能较好的解决上面的问题,虽然与之前的方式相比,响应时间不会增加,但好处是线程在等待第一...原创 2019-07-09 17:08:51 · 1418 阅读 · 0 评论 -
sqlserver数据库字段为空格的问题
今天查问题遇到sqlserver数据库中一张表里本来插入的数据为空但是变成了空格的问题。刚开始考虑是因为程序逻辑有问题,检查了代码后没有异常,总共有a,b,c三个字段,都是同样的逻辑。a就是空格,b,c是空开始从数据库方面下手查问题,首先查看空格在字段中的位置因为sqlserver在编译sql语句时会自动将a='',和a=' '编译为同样的'',会自动去掉前置空格因此使用a=' '...原创 2019-05-09 16:19:23 · 2847 阅读 · 0 评论 -
linux 命令小计
最近在学习java的热点分析,要直接操作linux,之前直接操作linux还是第一份实习工作,做微信公众号时使用AWS服务器的时候用过。现在命令都差不多忘了,只记得cd,ll等。现在把早上用到的命令做一个记录,便于以后忘记直接查找。查看系统所有用户:cat /etc/group查看当前用户所属分组:groups查看当前用户名:who am i按文件名查找文件:find / -nam...原创 2019-03-11 14:08:43 · 199 阅读 · 0 评论 -
前端小记————加水印
水印图片有外部接口提供,拿到的是base64编码的字符串。前端可以直接引用这个字符串来显示图片:<img border="0" src="data:images/JPG;base64,编码" alt=""><img> 标签在src中这样填写想要把这个图片变成水印,就要将其设置成背景,在js函数中,直接和body绑定就可以了。var imageSrc ...原创 2019-03-07 11:40:29 · 1074 阅读 · 0 评论 -
tomcat启动进程号被占用的解决办法
例如 1099 端口号被占用首先打开cmd其次,输入netstat -ano| find "1099"可以看出是6968这个进程占用了1099端口,直接把这个进程杀掉就行了不确定的话,可以去看6968这个进程是哪个应用在用输入 tasklist | find "6968"确实是java.exe的,下一步就是杀掉这个进程,释放端口taskkill /f /t /i...原创 2019-02-18 12:39:22 · 1249 阅读 · 0 评论 -
Teleport Ultra抓取不到登陆后的页面
最近接了一个将一个快下线的网站的所有内容都下载下来并离线能正常使用的需求。最开始是用 Teleport Ultra 来爬的,但是登陆后的内容总是爬不下来,在看了该网站的登陆机制后,觉得可能的原因是:登陆成功后网站不是响应一个页面出来,而是响应的302状态码,响应的内容是空的。然后前端会再去访问后端,这样响应出来的网页就是登陆后的网页。Teleport Ultra 可能是不支持这样的机制吧。...原创 2018-12-12 16:59:17 · 4422 阅读 · 0 评论 -
使用Spring Data操作MongoDB--MongoOperations
MongoDB属于NoSQL数据的一种,是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活。官方文档提供的原生java语句写法虽然种类齐全,但是使用起来极其不便,为此Spring对MongoDB的操作进行了类似于JDBCTemplate的封装。在集成Spring后可以直接使用 MongoOperations 来达到我们的目的。对于MongoDB如何集成Spring...原创 2018-12-04 18:39:12 · 7534 阅读 · 0 评论 -
毫秒级删除MySQL数据库百万条数据
最近遇到了清理历史数据的需求,需要去清楚数据库中的数据,但是DBA对数据库的删除任务做了各种限制,比如一个事务的连接不能超过60s,不加事务的操作不能超过120s。也就是说大概百万级的数据需要在60s内全部删除。原本是想先将符合条件所有记录全部查出来,再去做分批删除,没想到查询语句就超时了// 查询在update日期之前的所有记录List<Result> results =...原创 2018-11-26 09:58:31 · 4803 阅读 · 0 评论 -
JdbcTemplate.queryForList()或queryForObject报错Incorrect column count: expected 1, actual 2
原因是queryForList()与queryForObject()这两个方法一般情况下只返回单一列的数据,不能反悔复杂的数据对象。比如有实体类user,就会报错。public class User(){ private String name; privtae Stirng sex;}看源码可以发现反悔的确实只会是单一列的数据:@Nullable pub...原创 2018-11-16 10:58:43 · 2575 阅读 · 1 评论 -
停止ExcutorService线程池的方法
今天遇到一个需求是停止正在运行的线程池,所在研究了一下怎么停止ExcutorService先上代码:public class Excutor { private static int count = 0; public static void main(String []args){ ExecutorService excutor = Executors....原创 2018-10-22 18:53:28 · 935 阅读 · 0 评论 -
cell.getCellType() is deprecated 与 HSSFCell.CELL_TYPE_NUMERIC is deprecated的替代方法
先看下提示过期的方法private void getCellValue(Cell cell) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_NUMERIC: break; case HSSFCell.CELL_TYPE_...原创 2018-09-30 15:31:06 · 22846 阅读 · 6 评论 -
Mock测试返回为void的方法
1.使用doAnswer方法解决,代码如下:@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = {Application.class}) public class ControllerTest { @Test public void updateReading() throws Exc...原创 2018-09-26 10:01:03 · 14271 阅读 · 0 评论 -
测试接收MultipartFile的方法
MultipartFile可以使用Mockito的MockMultipartFile来模拟@Testpublic void compareSuccess() throws Exception { // ControllerTest是这个测试类的类名 URL resource=ControllerTest.class.getResource("/test.xlsx"); ...原创 2018-09-26 09:48:03 · 8833 阅读 · 0 评论 -
mysql中drop,delete,turncate的区别
1、DROP删表,表结构将删了,当然数据也不存在了2、TRUNCATE和DELETE删数据,表结构还在3、DELETE可以带条件删除,TRUNCATE是全部删除4、DELETE删除会写日志,TRUNCATE不写5、DELETE效率低,数据可以恢复,TRUNCATE效率高,数据不可恢复...原创 2018-08-03 14:20:22 · 3915 阅读 · 1 评论 -
让代码没有bug的方法
GitHub链接:https://github.com/kelseyhightower/nocode可以说一劳永逸了原创 2018-02-09 10:44:37 · 395 阅读 · 1 评论