<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[纵马饮白虹的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hailowell</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hailowell]]></copyright><item><title><![CDATA[IDEA中使用Maven打包时不从配置的镜像下载jar包]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/135964587</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/135964587</guid><author>hailowell</author><pubDate>Thu, 01 Feb 2024 00:23:56 +0800</pubDate><description><![CDATA[解决IDEA中使用Maven打包时不从配置的镜像下载jar包]]></description><category></category></item><item><title><![CDATA[Vmware 无法开启虚拟化解决方法]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/135964362</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/135964362</guid><author>hailowell</author><pubDate>Thu, 01 Feb 2024 00:13:53 +0800</pubDate><description><![CDATA[Vmware无法开启虚拟化的解决方案，2024年2月1日亲测有效]]></description><category></category></item><item><title><![CDATA[使用time包将时间戳格式化]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/103777422</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/103777422</guid><author>hailowell</author><pubDate>Tue, 31 Dec 2019 09:40:28 +0800</pubDate><description><![CDATA[JDK1.8新增了time包工具类，这个包下的类DateTimeFormatter可以做时间的格式化，但是这个类只能格式化time下的对象，因此需要先将时间戳转成time下的时间对象


LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(mills), getTimeZone().toZoneId());...]]></description><category></category></item><item><title><![CDATA[BeetlSql LambdaQuery的折衷处理]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/96429575</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/96429575</guid><author>hailowell</author><pubDate>Thu, 18 Jul 2019 14:04:47 +0800</pubDate><description><![CDATA[如题，最近使用BeetlSql

对于Mapper中LambdaQuery的重构列名的用法跑不通

先做了折衷处理

简单对LambdaQuery对象做了包装（这个包装是接口加Impl的方式）

定义接口默认方法 返回LambdaQuery包装对象的代理

在代理的处理方法中判断参数

处理第一个参数为String的情况

写一个驼峰转下划线的工具方法

在处理器中调用
...]]></description><category></category></item><item><title><![CDATA[Spring核心功能的简单实现(IOC|DI)]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/90737776</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/90737776</guid><author>hailowell</author><pubDate>Sun, 02 Jun 2019 11:52:06 +0800</pubDate><description><![CDATA[讲一下自己实现简单[IOC|DI]功能的过程
首先,IOC意味着容器管理类的实例。实现的时候需要能从配置文件读取需要扫包的路径，然后扫包 获取包下所有的类。
因为扫包只是方法，所以不用纠结，如果以前没做过从网上找一个就行。
拿到要扫描的包下所有类后就可以创建类的实例，然后使用类的全路径名作为Key，将类的实例作为Value放到一个Map中
这块内容有两个需要注意的点：
[1]这里选择用动态代理作为...]]></description><category></category></item><item><title><![CDATA[JavaWeb项目中调用静态方法获取当前用户信息]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/90737427</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/90737427</guid><author>hailowell</author><pubDate>Sun, 02 Jun 2019 11:22:12 +0800</pubDate><description><![CDATA[JavaWeb项目中调用静态方法获取当前用户信息
用途
[1]简化代码
[2]简化代码
[3]简化代码
[4]将各种渠道的用户信息获取方式统一
思路
其实已经有框架实现这个功能,比如shiro,可以通过获取Subject然后获取Session,之后从session中获取当前用户
but!
如果这个用户是从对外提供的接口处管理呢?如果这个对外提供的接口不需要使用用户名密码登录呢?如果第三方开发不希望...]]></description><category></category></item><item><title><![CDATA[JAVA-日志的异步收集输出]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/90515165</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/90515165</guid><author>hailowell</author><pubDate>Fri, 24 May 2019 14:49:59 +0800</pubDate><description><![CDATA[记录一下最近做的一个Web项目中的日志问题

项目使用的日志体系如下：使用sl4j作为门面，log的实际实现是log4j

问题如下：

 在请求高并发的情况下，推测日志会出现串的情况。

举个例子：




public void echo() {
  log.info("Function begin");
  //...省略若干行代码...
  log.info("Function ru...]]></description><category></category></item><item><title><![CDATA[控制反转和依赖注入的理解]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/89671271</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/89671271</guid><author>hailowell</author><pubDate>Mon, 29 Apr 2019 11:42:03 +0800</pubDate><description><![CDATA[什么是控制反转（IOC）

平时我们使用类的对象，需要自己new一个 然后调用。控制反转就是不自己实例化 而是交给第三方实例化，这里的第三方就叫做IOC容器。

控制反转这个名字就是相对于我们平时的使用模式起的，之前是我们自己控制类的实例化，现在由第三方实例化，这里对于对象的控制责任就反转到IOC容器手上了。

控制反转不是具体的技术，而是一种思想 只要是实现这个思想的技术都可以叫做控制反转

什...]]></description><category></category></item><item><title><![CDATA[JAVA模拟控制台输入输出]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/89478096</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/89478096</guid><author>hailowell</author><pubDate>Tue, 23 Apr 2019 18:18:58 +0800</pubDate><description><![CDATA[都说IDEA是Java写的，最近注意到一个问题
在idea的控制台中输入字符可以被Scanner接收到，这个的原理是什么？
我们能使用代码模拟这个吗？通过代码传输字符 让Scanner读取到？
上面的Scanner指的是



Scanner sc = new Scanner(System.in);


研究了一下，发现Scanner实质还是对流的操作
Scanner的next和nextline...]]></description><category></category></item><item><title><![CDATA[征信上报对接]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/89378348</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/89378348</guid><author>hailowell</author><pubDate>Thu, 18 Apr 2019 17:38:24 +0800</pubDate><description><![CDATA[曾经了解过一点征信对接流程

当然这里只涉及技术上的，公司怎么和人行和金电沟通、申请是没有的

首先是和金电对接，将征信数据按照金电规定的格式、码值上报到金电

登录金电平台，将上报的数据加压加密

通过金电平台将加压加密后的数据上报人行

原则上可以几天一报，但是为了安全建议每天一报
...]]></description><category></category></item><item><title><![CDATA[Jplayer在线视频播放的实现细节]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/89379443</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/89379443</guid><author>hailowell</author><pubDate>Thu, 18 Apr 2019 15:21:35 +0800</pubDate><description><![CDATA[在线播放使用的播放器是开源的Jplayer

样式等都好说Jplayer有中文网，中文网还建立了鹅群，只要百度就能搜到

文档什么的都可以查看

在实际使用中遇到一个问题，同样是Mp4格式但是有一部分就是会出问题，有的是只有声音 有的是只有画面 还有的是不能播放。正常播放的只有一小部分

查资料后了解到 这是编码格式的问题，同样的Mp4格式有好几种编码格式

Jplayer支持的是H.264编...]]></description><category></category></item><item><title><![CDATA[图片预览的实现细节]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/89378605</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/89378605</guid><author>hailowell</author><pubDate>Thu, 18 Apr 2019 14:55:02 +0800</pubDate><description><![CDATA[Mark一次图片预览功能开发中遇到的问题细节

首先是环境 使用开源js viewer.js做图片预览，具体效果可以查看Viewer.js在线演示

下面是遇到的几个细节

1、不希望暴露文件的路径、不希望暴露固定的路径（即每一次都可以通过该路径访问资源）

使用缓存，使用UUID随机生成一个Key和图片的真实路径放到缓存中做映射，同时将SessionID和这个key做映射

页面上所有的图片统一...]]></description><category></category></item><item><title><![CDATA[Spring websocket获取httpSession]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88944328</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88944328</guid><author>hailowell</author><pubDate>Mon, 01 Apr 2019 11:35:13 +0800</pubDate><description><![CDATA[网上很多获取HttpSession的博客，但是没有找到org.yeauty包的，可能是用的人少，难找吧

现在将我的工作记录一下

首先，使用的websocket的maven引用如下：


netty-websocket-spring-boot-starter

然后这个包的ServerEndpoint注解没有configuration设置，需要绕一下

在OnOpen注解下可以获取 HttpHe...]]></description><category></category></item><item><title><![CDATA[高效求List差集]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88761121</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88761121</guid><author>hailowell</author><pubDate>Sat, 23 Mar 2019 14:54:31 +0800</pubDate><description><![CDATA[List求差集问题，解决思路使用了List的结构特性

先上代码，再分析


List list1 = new LinkedList();
List list2 = new LinkedList();
List list3 = new ArrayList();
for(int i = 0, len1 = list1.size(); i &lt; len1; i++) {
  Object obj1...]]></description><category></category></item><item><title><![CDATA[SpringMVC在拦截器中做权限控制，解决RequestBody获取问题]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88576181</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88576181</guid><author>hailowell</author><pubDate>Fri, 15 Mar 2019 15:57:15 +0800</pubDate><description><![CDATA[做接口的权限控制，接口请求结构是JSON串，比较为难的是@RequestBody的获取

网上的资料是先手动读出来，再使用自定义的封装将JSON串写回去

感觉有点麻烦，使用了新的思路

在拦截器中，拦截需要做权限验证的请求，使用下面的方式，将权限校验跳转到Controller层中做


String uri = request.getRequestURI();
request.setAttrib...]]></description><category></category></item><item><title><![CDATA[Java jar包中获取路径]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88127724</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88127724</guid><author>hailowell</author><pubDate>Mon, 04 Mar 2019 17:44:42 +0800</pubDate><description><![CDATA[在jar包中获取路径，一般是用于读取资源文件

System.getProperty的方式获取到的是启动路径，比如cd 到 E:/er下执行 存放在 F:/aa目录下的jar包， 获取到的路径就是E:/er

使用new File(&quot;&quot;)的方式有同样的问题

如果要更准确需要使用 Class对象的getProtectionDomain().getCodeSource().getLocation()...]]></description><category></category></item><item><title><![CDATA[WebRtc实现视频会议记录]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88116863</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88116863</guid><author>hailowell</author><pubDate>Mon, 04 Mar 2019 14:51:47 +0800</pubDate><description><![CDATA[前两天接到需求做一个视频会议功能，Mark一下

在网上查找资料后

服务端使用了WebRtc的封装SimpleWebRTC,

ice使用coturn

信令服务器使用signalmaster

这一套可以搭建一套网状结构的视频会议，即p2p传输，有以下几个缺点

1、信令服务难以和业务集成，如做些基于用户的权限控制

2、终端CPU、带宽（特别是上行带宽）要求高，我自己的电脑间互联 同时开5个...]]></description><category></category></item><item><title><![CDATA[安装CoTurn方法]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88032866</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88032866</guid><author>hailowell</author><pubDate>Thu, 28 Feb 2019 16:25:14 +0800</pubDate><description><![CDATA[本篇文章主要记录遇到的错误和处理，简单说下安装方法

1、从Git上下载


git clone https://github.com/coturn/coturn 

2、进入项目根目录 执行configure


cd coturn 
./configure 

3、make之后make install


make 
make install

4、配置turnserver.conf

具...]]></description><category></category></item><item><title><![CDATA[CentOS下安装redis]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/88032708</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/88032708</guid><author>hailowell</author><pubDate>Thu, 28 Feb 2019 16:10:42 +0800</pubDate><description><![CDATA[直接上链接

很详细，安装中常见的错误提示和错误处理都有]]></description><category></category></item><item><title><![CDATA[Android推送的思考]]></title><link>https://blog.youkuaiyun.com/hailowell/article/details/87783753</link><guid>https://blog.youkuaiyun.com/hailowell/article/details/87783753</guid><author>hailowell</author><pubDate>Wed, 20 Feb 2019 11:31:47 +0800</pubDate><description><![CDATA[遇到一个需求，要求服务器能实时控制App =》 服务器推送App

 上网查了下资料，基于实时性的要求都是长连接加心跳机制维持推送

 如果不考虑实时性还可以做轮询

 考虑到我们的项目是基于局域网内的，修改了一下

 想了下可以这么比喻：有测试员A、B

 测试员B是一个读报员，测试员A花钱要求测试员B时刻关注新闻，将A感兴趣的新闻及时通知

 轮询就是A隔一段时间给B...]]></description><category></category></item></channel></rss>