java
文章平均质量分 50
timelessmemoryli
多思考,思想很重要。
展开
-
Apollo启动报Config service failed to start in 120 seconds! Please check ./service/apollo-ser
阿波罗启动不起来,一直报错:Config service failed to start in 120 seconds! Please check ./service/apollo-ser解决方案:延长启动时间 改成600s修改demo.shdeclare -i max_counter=120 # 120*5=600s原创 2020-07-29 16:27:57 · 1434 阅读 · 1 评论 -
web3j区块链上链代码
首先需要安装geth以下为代码private static final String URL = "http://localhost:8000"; public static Web3j initWeb3j() { return Web3j.build(getService()); } private static HttpService getService(){ return new HttpService(URL); }原创 2020-07-22 11:22:37 · 1443 阅读 · 0 评论 -
智能合约编译
windows下1.通过nodejs的npm命令:npm install -g solc安装solc运行solcjs C:\Users\合约文件.sol --bin --abi --optimize -o C:\Users\Administrator\保存路径生成.abi、.bin文件2.使用web3j命令行工具转为java文件工具地址https://github.com/web3j/web3j/releases/tag/v3.3.1运行web3j solidity generate原创 2020-07-21 14:28:01 · 309 阅读 · 0 评论 -
mybatis resultType="map"查询不到值
之前一直使用resultType="map"来接收查询结果,一直也是有效的。最近使用了springboot,却接收不到值。最后改为resultType="hashmap"才能接收到。查了一下,并没有别人遇到这种情况。特此记录一下...原创 2019-06-12 15:30:26 · 1310 阅读 · 0 评论 -
java 代理的理解
之前看过很多相关文章,也都理解了,但是长时间不思考的话再去回忆很多细节会混乱。这个时候再去看别人的文章,由于不是自己的语言描述,看起来又会花一定时间,所以自己记录总结一下相关理解,以后看起来顺当点。 代理,代理,也就是代为处理。在java中的体现就是,本来一个A类有do方法,一般常规就是A.do()。但是在有些场景下需要在A.do()的前后做些其它的事情,比如记录do方法执行时间,...原创 2019-05-11 16:13:20 · 603 阅读 · 0 评论 -
java一些小的方法记录
隐藏银行卡号 替换为星号bankNumber.replaceAll("(?<=\\w{0})\\w(?=\\w{4})", "*")原创 2019-04-10 09:23:08 · 155 阅读 · 0 评论 -
UTC与ISO-8601
UTC 是时间,并不是时间的格式UTC 是时间标准;ISO-8601 是表示时间的一种标准格式,多数编程语言都支持。 2016-01-18T23:41:00 是符合 ISO-8601 标准的时间表示。 2016-01-18T23:41:00 里面的 T 表示 UTC,所以这个字符串解析后就表示 UTC 时间的 2016-01-18 23:41:00,那么再转换为北京当地时间展示...原创 2019-03-07 14:59:06 · 1998 阅读 · 0 评论 -
SQL优化
查询优化建索引(where 及 order by 涉及的列上建立索引)索引使用注意点在使用索引字段作为条件时,如果该索引是复合索引,那么必须使用到该索引中的第一个字段作为条件时才能保证系统使用该索引,否则该索引将不会被使用,并且应尽可能的让字段顺序与索引顺序相一致索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低了 insert 及 update 的效率...原创 2019-02-18 16:28:42 · 165 阅读 · 0 评论 -
高并发提现问题记录
如果单纯的按照业务逻辑先查询余额再扣除余额进行提现,请求少的时候不会有问题,一旦出现高并发或者用户恶意提现,那么就导致多次提现但是余额只扣了很少。这是由于高并发环境下(操作同一个用户的资金)一个线程进入读取余额100,还没更新完余额100-20,另一个请求就进入读取余额100(应该是80),问题就出现了。所以解决方案是限制一次只能一个线程操作。更为完善点,万一一瞬间有10000条对同一用户进行操作...原创 2019-02-22 10:12:15 · 2969 阅读 · 2 评论 -
技术点记录
Spring CloudSpring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。相关资料https://springcloud.cc/ RocketMQRocketMQ是一个消息中间件。消息中间件中有两个角色:消息生产者和消息消费者。...原创 2019-02-16 14:53:16 · 250 阅读 · 0 评论 -
使用wkhtmltopdf转vue网页为PDF的坑
1 首先是数据显示问题,vue中使用method:{methodname() {}}这种写法,网页可以正常渲染 但是PDF无法渲染数据,改写为method : {method:function(){}}2 显示出ajax数据以后 发现英文可以正常显示,中文不显示(linux上)。 解决方案在linux字体文件夹下增加simsun字体文件3 数据都显示了 样式出现问题(1) 不分页 在...原创 2019-01-21 13:36:51 · 7871 阅读 · 8 评论 -
java使用itext导出PDF 包含中文,带水印,水印不被覆盖
最近要用到导出PDF,看了网上例子,很快导出来了,但是遇到了中文无法显示,水印被覆盖等等问题,最后还是搜罗了很多代码解决了,在此记录一下;另外,网上很多代码都执行无效 -- 1使用ITextRenderer导出PDFpublic class PdfOld { protected static Log logger = LogFactory.getLog(PdfOld.class...转载 2018-12-18 13:23:15 · 4935 阅读 · 1 评论 -
AopContext.currentProxy()的使用
常规使用spring的AOP功能,就是对一个service的B方法进行切入记录日志,AOP能起作用。但是假如B方法被service中的A方法调用,切入会失效,无法记录日志(这里的切入失效是指对B的切入记录日志失效,对A方法的切入还是有用的)。解释,要求熟悉动态代理原理Service类public void A() { B();} public void B() { }...原创 2019-05-11 17:34:34 · 21461 阅读 · 0 评论 -
intellj idea中编译打包部署与eclipse中的差异
好久没使用intellj,毕竟还是eclipse比较熟悉,用起来顺手,最近因为项目又要使用intellj,关于在intelj中项目编译打包部署这一块重新研究了下,写个文章记录下。不涉及maveneclipse中导入包之类的设置一般在java buildpath,里面包含source folder, 编译文件的默认输出位置,包引入,输出文件等设置,一目了然。配合 project栏的clean...原创 2019-05-30 16:30:53 · 3013 阅读 · 0 评论 -
java复杂json字符串转为java对象
有复杂json串如下{"DEPT_ID":"1","DEPT_NAME":"教育部"}key值全部大写,并且又下划线分割;要求封装为如下beanpublic class Bean { private String deptId; private String deptName; public String getDeptId() { return deptId;...原创 2019-08-09 10:15:31 · 2476 阅读 · 3 评论 -
java+rabbbitmq
首先安装rabbitmq,安装之后运行rabbitmq-plugins.bat enable rabbitmq_management(开启该插件)和net stop RabbitMQ && net start RabbitMQ;项目中引入amqp-client包;编写简单示例ConnectionUtil.javapublic class ConnectionUti...原创 2019-07-19 14:59:27 · 295 阅读 · 0 评论 -
java读取本地或者网络wav音频文件的时长
网上试了好多方案,jave,jaudiotagger都是不准确或者有问题的。最后发现了如下方案本地File source = new File("C:\\Users\\5eece771f85d4c0a8ecbf510e078f697.wav"); Clip clip = AudioSystem.getClip(); AudioInputStrea...原创 2019-07-04 10:08:21 · 3421 阅读 · 2 评论 -
springboot小记
1.在集成mybatis后发现,mybatis的xml文件编译后在编译目录中找不到原因:默认不编译 src\main\java下的xml文件解决方案pom下加入<build> <resources> <resource> <directory>src/main/java</...原创 2019-06-11 09:13:23 · 156 阅读 · 0 评论 -
springboot 部署命令记录
先打包mvn clean package -Dmaven.test.skip=true1.启动新建命令输出目录nohup java -jar b2b-0.0.1-SNAPSHOT.jar > log.file 2>&1 &追加命令输出目录 nohup java -jar b2b-0.0.1-SNAPSHOT.jar >> log.fi...原创 2019-06-19 15:35:49 · 765 阅读 · 1 评论 -
spring boot 访问static下静态资源404
一开始试了好几个官方的目录static,pullic,发现都访问不到,还特意去配置了spring.mvc.static-path-pattern这些,发现都没用。看网上一些情况是由于配了拦截器,但是我没配置拦截器,所以就纳闷怎么默认的就是访问不到,然后新建了一个空白项目,发现一下子能访问到了,那肯定就是我代码里面有配置影响到springboot默认的机制了。尝试删文件看是哪个文件影响的,......原创 2019-06-19 13:38:00 · 21265 阅读 · 2 评论 -
Maven添加外部jar包到本地仓库
常规开源jar包是从远程maven仓库下载到本地仓库 当在pom.xml中使用坐标定位依赖时就会去找到相应的jar包进行使用有的时候可能自己会有一些封装的框架jar包,那么怎么把它加入到本地仓库并且在pom.xml中进行依赖,打成war包时也会加入这个包。假设自定义了一个core.jar,那么切换命令行到该jar包路径下执行mvn install:install-file -Dfil...原创 2019-06-05 17:31:54 · 588 阅读 · 0 评论 -
验证码识别相关文章
java验证码识别--1http://blog.csdn.net/problc/article/details/5794460java验证码识别--2http://blog.csdn.net/problc/article/details/5797507java验证码识别--3http://blog.csdn.net/problc/article/details/5800093...原创 2018-12-01 11:35:56 · 200 阅读 · 0 评论 -
常见开发问题解决方案汇总
解决跨域,session不一致问题https://blog.csdn.net/qq_27373459/article/details/77099207转载 2018-08-13 16:29:53 · 381 阅读 · 0 评论 -
mybatis 使用map封装查询列表字段再包含(嵌套)map列表的查询配置方式
情景:user表和account表,一个用户对应多个account,account表存在外键关联user表主键id要求在查询user列表时查询出对应的account列表,形如userList : [{ id:1, name:"xiaoming", accountList : [{ id:1, account:"", password:"" ...原创 2018-07-02 15:50:06 · 2661 阅读 · 0 评论 -
网易云音乐爬虫--评论爬取以及Top Music统计
网易云云音乐评论十分有趣,于是就想写个爬虫爬取评论。但是不熟悉Python,就用java写了个。 主要使用了HttpClient,,Jsoup, 队列, 线程, log4j,poi生成Excel保存结果, 书写过程中主要一个问题就是评论获取,网易对其进行了加密,进行好一番搜索才找到解决方法。爬取歌单数,top歌曲数都可以动态进行配置. 目录结构原创 2016-10-26 17:17:08 · 17612 阅读 · 20 评论 -
基于Angularjs+mybatis的二级评论系统(仿简书)
一直想写个评论系统,看了下多说,网易的评论,想了下自己该实现怎样的评论系统。评论系统关键是嵌套层数以及数据库表设计。嵌套层数多,表结构复杂,呈现也麻烦,最后决定实现一个二级评论。系统由maven构建,springboot快速搭建spring环境。前台采用angularjs+bootstrap,后台使用springmvc+mybatis,数据库采用mysql.前台请求后台API操作评论。原创 2016-12-21 12:34:36 · 2034 阅读 · 5 评论 -
队列的线程安全
在Java多线程应用中,队列的使用率很高,多数生产消费模型的首选数据结构就是队列(先进先出)。Java提供的线程安全的Queue可以分为阻塞队列和非阻塞队列,其中阻塞队列的典型例子是BlockingQueue,非阻塞队列的典型例子是ConcurrentLinkedQueue,在实际应用中要根据实际需要选用阻塞队列或者非阻塞队列。注:什么叫线程安全?这个首先要明确。线程安全就是说多线程访问同转载 2016-10-20 15:45:39 · 6758 阅读 · 0 评论 -
Webmagic网易云音乐爬虫
发现了一个java爬虫框架,熟悉了一下写了一个爬取网易云音乐专辑歌曲信息的爬虫,其中歌曲的歌词和评论是动态获取的,我只能单独自己写代码进行请求。代码如下import java.io.IOException;import java.io.UnsupportedEncodingException;import java.math.BigInteger;import java.securi原创 2016-10-28 11:39:35 · 3490 阅读 · 3 评论 -
Java中的Copy-On-Write容器
Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWriteArrayList和CopyOnWriteArraySet。转载 2016-11-03 15:04:43 · 306 阅读 · 0 评论 -
毕设-婚恋网站-永恒网的设计与实现
最近就一直在忙着毕业设计,花了半个月写完了,大概介绍下:本系统名为永恒网,是基于Java和Angularjs的婚恋网站。项目由Maven构建,在技术上主要使用了Angularjs和SpringMVC技术。系统整体开发主要包括前台页面的Web设计与后台管理。开发工具包括Eclipse、Sublime、Google浏览器、Postman等。系统主要包括前台Web以及后台管理,前台实现的功能包括登录原创 2016-06-15 11:15:17 · 3781 阅读 · 12 评论 -
java list移除null元素
list ls = new ArrayList();list.add(1);list.add(2);list.add(null);list.add(3);list.add(null);list.add(4);如果只需移除第一个null, 那么直接ls.remove(null);如果要全部移除,可以这样list e = new ArrayList(1);e.a原创 2016-04-19 22:08:12 · 14337 阅读 · 0 评论 -
log4j基本配置
Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显 示内容。定义配置文件其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配转载 2016-04-02 16:43:17 · 402 阅读 · 0 评论 -
Java 8中处理日期和时间
LocalDate// 取当前日期:LocalDate today = LocalDate.now(); // -> 2014-12-24// 根据年月日取日期,12月就是12:LocalDate crischristmas = LocalDate.of(2014, 12, 25); // -> 2014-12-25// 根据字符串取:LocalDate endOfFeb = Loc原创 2015-11-29 16:26:24 · 463 阅读 · 0 评论 -
spring集成redis,序列化对象,以及websocket依赖注入
最近业务在使用websocket开发一个聊天系统,打算使用redis存储聊天记录。 首先导入spring集成redis的包spring-data-redis-1.6.2.RELEASE.jar, redis java驱动包jedis-2.9.0.jar spring配置文件<beans xmlns="http://www.springframework.org/原创 2017-08-08 10:43:04 · 1846 阅读 · 0 评论 -
Java websocket + redis 实现多人单聊天室,多人多聊天室, 一对一聊天
多人,单聊天室版FEATURE多人聊天, 界面简洁美观, 使用ueditor支持发送文字,图片信息群聊成员列表, 登入登出公告存储聊天记录, 查看历史消息技术点使用CopyOnWriteMap存储websocketServer对象,线程安全redis存储消息记录ConcurrentLinkedQueue存储聊天成员TODO没有处理高并发,高并发情原创 2017-08-18 09:15:17 · 11039 阅读 · 14 评论 -
websocket 分布式开发,websocket session不支持序列化,无法存储至radis
单websocket服务器在面对并发量很大时压力会很大,而且session储存在Map中,内存压力也会很大。于是考虑分布式。但是分布式存在websocket session共享问题,于是考虑radis存储session,但是遇到websocket session不支持序列化,无法存储。一番搜索后有了以下几个方案1. 使用spring session自定义session.2. 既然原创 2017-08-11 10:25:08 · 13608 阅读 · 4 评论 -
java double类型加减乘除精度丢失解决方案
java中double运算会发生计算结果不准确,如果进行商业计算不适合了,要使用BigDecimal。import java.math.BigDecimal;/** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 * 确的浮点数运算,包括加减乘除和四舍五入。 */public class Arith{ //默认除法运算精度 private ...原创 2018-06-19 09:38:02 · 6124 阅读 · 2 评论 -
使用Redis抢红包高并发出现connection refused的解决方案
最近使用redis队列实现抢红包,在使用jmeter测试时发现1000个线程0s并发抢红包出现connect refused错误,但是500个10s就正常。源代码如下 private static void initialPool() { try { JedisPoolConfig config = new JedisPoolConfig(); con...原创 2018-06-08 11:28:26 · 1846 阅读 · 0 评论 -
mybatis #{}与${}使用场景
${}哪边都能使用,只是存在sql注入风险,相当于直接拼接字符串,不对参数做任何处理。#{}会进行预编译,对参数进行处理,防止注入。对于SELECT id,name,age FROM student WHERE name = 参数;这样的语句如果传入参数anything’ OR ‘x’='x那么${}处理完就是SELECT id,name,age FROM student WHERE name =...原创 2018-06-12 11:35:32 · 3645 阅读 · 1 评论 -
tomcat部署war包
war不能在tomcat运行时删除,否则会删除自动解压的工程。 你可以停止tomcat后删除war。当你重新部署的时候,如果有与war文件相同的文件夹,就不会重新部署。因为tomcat在运行期, 会實時监控webapps目錄下的war文件,如果有新增的war,就去解压它; 有删除war,就连同项目一起删除 .所以,如果您要删除,可以先关闭tomcat再删除,这样不会有影响的Tomcat/webap...转载 2018-05-07 16:25:49 · 337 阅读 · 0 评论