- 博客(96)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 能将事务管理配置到Controller层吗?
更多Spring事务问题请访问链接:Spring事务回滚疑难详解我们通常会在Service层进行事务管理,难道不能在Contoller层实现?(我觉得这个问题,对于每一个不仅仅是为了编程而编程的程序员在最初接触切面编程时都是一个比较大的疑问,尤其是强迫症患者或者懒得写Service层的快速开发者,但实际上真的不建议避开Service层,随着实践知识深入,你们会逐渐了解这一切面的重要性)...
2017-08-01 15:34:59
8362
2
原创 mysqld_safe Directory ‘/var/lib/mysql‘ for UNIX socket file don‘t exists.
在Linux服务器上安装Mysql,由于Centos自身的yum源中用Mysql的分支Mariadb代替了MySQL,所以不得不选择rpm或tar.gz包的方式安装,但是为了以后在其他LInux如Ubuntu中方便安装MySQL,所以推荐使用tar.gz,安装教程—http://www.cnblogs.com/therunningfish/p/6898309.html运行命令:service
2017-07-28 10:29:15
66987
21
转载 从进程的角度再看Java内存
转自:https://www.history-of-my-life.com/archives/570于2019年9月3日由astupidcoder发布Java的内存模型大家都很熟悉了,比如运行时内存分为:线程栈、本地方法栈、程序计数器、方法区、运行时常量池、堆、本地内存。堆又进一步分为新生代、老年代,新生代又进一步分为eden区和两个survivor区,方法区在JDK1.7之前的hotspot虚拟机的实现中用的是永生代这个概念,但在JDK1.8以后挪到了本地内存空间中去,其他的虚拟机实现比如JRoc
2021-01-24 23:02:36
797
转载 Java8 parallelStream —— 替换默认的共享线程池ForkJoinPool.commonPool()
目录问题一种变通方案Java 8 并行流(parallel stream)采用共享线程池,对性能造成了严重影响。可以包装流来调用自己的线程池解决性能问题。问题Java 8 的并行流可以让我们相对轻松地执行并行任务。myList.parallelStream.map(obj -> longRunningOperation())但是这样存在一个严重的问题:在 JVM 的后台,使用通...
2018-12-20 12:02:01
43246
11
原创 JavaScript —— document中id属性不唯一时,id选择器如何工作
测试代码:<!DOCTYPE html><html><head><meta charset="utf-8"><title>document中存在相同id</title>&l
2018-12-17 17:45:09
2102
原创 CSS伪类选择器 ——:last-child、:nth-last-child(n)、:nth-last-of-type(n)
在系统的学习前端知识前,一直是JQuery的忠实用户,很大程度上是由于它能够很方便的获取Element对象,通过它强大的选择器 —— 《JQuery选择器》,让我们成功远离原生JS获取Element对象的苦恼和鸡肋:document.getElementsByClassName()document.getElementById()document.getElementsByName()d...
2018-11-28 17:07:28
6406
原创 React踩坑笔记 —— CSS
Flex是先有元素再有布局,根据元素编排布局;Grid是先有布局,再放置元素;Div在产生滚动框时,会挤压内部布局,最简单的方法,再加一个中间层专门用来显示内容#content{ overflow-y: auto; height: 328px;}#content-internal{ display: flex; flex-direction: col...
2018-11-28 08:29:12
245
原创 React踩坑笔记 —— JS、ES6
Java|JavaScript中Lamda表达式没有自己的this,它保留了封闭词汇上下文的this值,且Lamda被创建时被设置;JS可以函数式编程,所以要注意变量初始化时,赋值的是函数调用()还是函数本身;声明在函数中的变量称为局部变量。var局部变量作用域整个函数体,且具备声明提升;let作用于块和子块,不具有提升特性;同一块中,let变量不能被声明两次子块中可以再次let声...
2018-11-28 08:27:09
224
原创 Spring Websocket+SockJS+STOMP 实现即时通信(六)—— SubProtocolWebSocketHandler
目录WebsocketHandlerSubProtocolWebSocketHandler四个重要成员变量protocolHandlerLookup子协议SubProtocolHandlersessionsclientInboundChannelclientOutboundChannelWebsocketHandler一个用来处理Websocket Messages和生命周期事件的处理程序...
2018-11-24 20:31:38
5605
2
原创 Spring Websocket+SockJS+STOMP 实现即时通信(四)—— MessageHandler
目录MessageHandler的作用MessageHandler实现类UserRegistryMessageHandler使用场景使用条件NoOpMessageHandlerMessageHandler的作用上一节中我们提到过,ExecutorSubscribableChannel类持有一个实例handlers —— MessageHandler集合,是MessageChannel的订阅者......
2018-11-24 15:33:13
3589
原创 Spring Websocket+SockJS+STOMP 实现即时通信(五)—— UserRegistryMessageHandler与NoOpMessageHandler
UserRegistryMessageHandler用来处理来自其他应用服务的用户注册表广播,同时定期地广播本地用户注册表的内容;用户注册表的聚合信息,被维护在一个MultiServerUserRegistry成员变量中;无需订阅MessageChannel,所以没有实现SmartLiftCycle接口;处理来自其它应用服务的注册表广播UserRegistryMessageHandl......
2018-11-24 15:27:44
1857
原创 使用CSS画出“鹰嘴”消息框
必须明白radius可以设置为两个值,宽半径、高半径,如果只设置为一个值,则宽半径 = 高半径<!DOCTYPE html><html><head><meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> <style> #par
2018-11-12 17:16:19
712
原创 Spring Websocket+SockJS+STOMP 实现即时通信(三)—— MessageChannel
文章目录三个基本问题为什么不直接使用Websocket,还要使用SockJS?难道不能使用Socket.IO代替SockJS来提供备用方案吗?兼容性也被解决了,为什么还要使用STOMP?代码实例三个基本问题为什么不直接使用Websocket,还要使用SockJS?SockJS是为了解决浏览器对HTML5 Websocket API的兼容性而提供的备用解决方案JS库。难道不能使用Soc......
2018-10-30 16:58:02
8880
原创 Spring Websocket+SockJS+STOMP 实现即时通信(二)—— 完整代码实例
还是要说一句:好的技术博客往往都是从文档、源码、书籍和踩坑中得来的。很多时候我们去学习一个技术的时候往往会参照各式各样的技术博文来完成入门,然而:很多博文中都掺杂了笔者自身的很多见解,有时候不一定正确;技术博文大多数能够促进我们对问题的理解,但不一定适合入门。《官方文档》其实是最适合我们用来入门的,比如它所包含的Get Started、Examples…初学者往往会试着通过各种...
2018-10-29 10:28:21
2350
原创 Spring Websocket+SockJS+STOMP 实现即时通信(五)—— ChannelInterceptor与ExecutorChannelInterceptor
文章目录ChannelInterceptor:ExecutorChannelInterceptor:这里以,为InboundChannel配置ChannelInterceptor为例ChannelInterceptor:Message被发送到线程池,在发送动作执行前(后)拦截,发生在当前线程。ExecutorChannelInterceptor:Message被发送到线程池后,在线...
2018-10-26 10:42:57
4854
1
原创 Spring Websocket+SockJS+STOMP 实现即时通信(一)—— 疑问解答
文章目录三个基本问题为什么不直接使用Websocket,还要使用SockJS?难道不能使用Socket.IO代替SockJS来提供备用方案吗?兼容性也被解决了,为什么还要使用STOMP?三个基本问题为什么不直接使用Websocket,还要使用SockJS?SockJS是为了解决浏览器对HTML5 Websocket API的兼容性而提供的备用解决方案JS库。难道不能使用Socket....
2018-10-14 15:45:51
2053
原创 Spring Websocket+SockJS+STOMP实现即时通信(零)—— 目录
Spring Websocket+SockJS+STOMP 实现即时通信(一)—— 疑问解答Spring Websocket+SockJS+STOMP 实现即时通信(二)—— 代码示例Spring Websocket+SockJS+STOMP 实现即时通信(三)—— WebSocketMessageBrokerConfigurer配置解析Spring Websocket+SockJS+ST...
2018-10-14 15:40:39
2692
2
原创 JavaScript —— 完全理解JavaScript闭包
闭包,可访问上一层函数作用域变量的函数,即便上一层函数已经关闭。闭包的目的:使函数拥有私有变量成为可能,注意,私有变量不同于局部变量。var add = (function () { var counter = 0; return function () {return counter += 1;}})();add();add();add();// 计数器为 3...
2018-09-29 17:14:59
192
原创 JavaScript —— JavaScript中变量的作用域
在 JavaScript 中, 对象和函数同样也是变量如果变量在函数内没有声明(没有使用 var 关键字),该变量也被视为全局变量。非严格模式下,browser中全局变量(函数,对象也属于变量)都属于全局对象window,而严格模式下,全局对象为undefinedtest();//记得调用console.log(a);console.log(test2());console.log...
2018-09-29 17:02:07
310
原创 CSS中block与inline元素的特性与区别
block块元素:默认占满宽度,但可修改宽高;前后均有换行符inline行内元素:只需要必要的宽和高,且不可修改宽高;前后均无换行符inline-block行内块元素:只需要必要的宽和高,但可修改宽高;前后均无换行符特殊的,在css 常用布局display:table|grid|flex中items默认设置为inline-block...
2018-09-29 16:58:38
225
原创 JavaScript —— JavaScript中如何确定this的指向?
文章目录首先严格模式this关键字全局上下文(函数外)函数上下文(函数内)首先JS中存在变量提升,实际上提升的是声明,而不是初始化严格模式为了消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为,提高编译效率和运行速度,官方提出了严格模式,通过在代码前声明’use strict’来显式开启,而且它同时支持全局或局部。全局 &quot;use strict&quot; myF...
2018-09-29 16:54:27
1247
原创 Transfer-Encoding:chunked详解
分块传输编码(Chunked transfer encoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用( 通常是网页浏览器)的数据可以分成多个部分。分块传输编码只在HTTP协议1.1版本(HTTP/1.1)中提供。通常,HTTP应答消息中发送的数据是整个发送的,Content-Length消息头字段表示数据的长度。数据的长度很重要,因为客户...
2018-08-28 15:14:16
75649
1
转载 基于 Elasticsearch 的站内搜索引擎实战
站内搜索,可以认为是针对一个网站特性内容的搜索功能。由于内容、格式可控,站内搜索比全网搜索的实现要简单很多。简书这个网站本身自带一个搜索,但是缺乏针对个人文章的搜索,所以本文的实战内容是解决这个痛点。代码在 https://github.com/letiantian/jianshu-site-search,可以使用下面的方式把代码下载下来查看:git clone https://gi...
2018-08-10 14:24:05
5699
转载 完全理解Java:Fork/Join框架
前言Java 1.7 引入了一种新的并发框架—— Fork/Join Framework。本文的主要目的是介绍 ForkJoinPool 的适用场景,实现原理,以及示例代码。TLDR; 如果觉得文章太长的话,以下就是结论:ForkJoinPool 不是为了替代 ExecutorService,而是它的补充,在某些应用场景下性能比 ExecutorService 更好。(见 Java...
2018-08-08 10:53:40
4665
3
转载 JDK8-Fork/Join和CompletableFuture的使用
随着多核处理器的出现,提升应用程序处理速度最有效的方式是编写能充分发挥多核能力的软件。可以通过切分大型的任务,让每个子任务并行运行,在Java中目前有直接使用线程的方式、使用Fork/Join框架和JDK8中的并行流来达到这一目的。这段代码演示了分段求和用线程方式的实现。分别开启2个线程,给予不同范围的数值进行求和,最后调用join()方法等到线程执行完毕,将2个线程的结果相加得到结果。...
2018-08-08 10:24:00
11395
4
转载 比AtomicLong还高效的LongAdder源码解析
接触到AtomicLong的原因是在看guava的LoadingCache相关代码时,关于LoadingCache,其实思路也非常简单清晰:用模板模式解决了缓存不命中时获取数据的逻辑,这个思路我早前也正好在项目中使用到。言归正传,为什么说LongAdder引起了我的注意,原因有二:作者是Doug lea ,地位实在举足轻重。 他说这个比AtomicLong高效。我们知道,AtomicLo...
2018-05-29 10:47:41
813
原创 Spring之坑:自定义Jackson的ObjectMapper,实现@ResponseBody的自定义渲染
通常,我们可以采用下面的Java Config方式代替上面的Xml,实现 **fine-grained(细粒度)** 配置。
2018-05-21 17:18:49
3524
转载 Windows批处理(cmd/bat)使用小记
前言批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺序执行。编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效。在Windows中善用批处理可以简化很多重复工作更新记录2016年03月29日 - 初稿阅读原文 -...
2018-04-24 10:37:43
806
原创 学习心得 —— 新框架(新工具,语言)从入门到精通的正确姿势
一,了解概念,把握思路尽可能,使用视频教程入门形象生动,思路清晰,面面俱到,概念性的东西一针见血,所以首选。如果没有,使用官方文档 Quick Start(若是英文文档 Google翻译)权威度高,快速上手,但是很多概念需要自己咬文嚼字慢慢理解。实在不行,就搜索相关博客教程(建议使用Google搜索) 不具权威性,掺杂私人见解,不过概念和思路相对自己看文档较快捷清晰,也能很快上...
2018-04-16 11:23:32
1297
原创 解决方案(三)— 使用XStream解析Xml到JavaBean,保持属性默认值
使用场景在Java开发中,有时我们需要自定义Xml,并使用常用的解析器XStream将Xml字符串,InputStream或File,解析成JavaBean对象。但是,有些时候,XML的标签属性,我们不需要额外赋值,它们通常只需要保持默认值。例如:JavaBean类@XStreamAlias("controllers")public class ControllerGenerat...
2018-04-14 17:43:12
3055
原创 解决方案(二)— 将 "http://apache.org/xml/features/disallow-doctype-decl" 设置为“true”时, 不允许使用 DOCTYPE
注意:该异常发生也可以是其他XML解析器,这里以XStream为例。使用XStream解析xml文件的时候抛出异常:org.xml.sax.SAXParseException;将功能 “http://apache.org/xml/features/disallow-doctype-decl” 设置为“真”时, 不允许使用 DOCTYPE。Caused by: org.xml....
2018-04-14 16:00:28
22619
1
转载 Transaction之坑:数据库事务
Redis之坑:spring-data-redis中的Redis事务 Redis之坑:理解Redis事务 Redis之坑:Redis与MySQL中事务的区别 Transaction之坑:数据库事务 Transaction之坑:Spring中配置Transaction与不配置有何区别 Transaction之坑:分析sql执行结果,主动促使事务rollback 在数据库中,所谓...
2018-04-10 12:25:27
933
原创 Linux —— wget -qO- 命令详解
语法wget(选项)(参数)选项-a:在指定的日志文件中记录资料的执行过程;-A:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;-b:进行后台的方式运行wget;-B:设置参考的连接地址的基地地址;-c:继续执行上次终端的任务;-C:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;-d:调试模式运行指令;-D:设置顺着的域名列表
2018-02-02 15:10:48
46788
转载 JAVA强制类型转换
在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。
2018-01-23 17:17:24
334
原创 Unsigned JdbcType is resolved to only signed JavaType , which won't it overflow?
Unsigned JdbcType is resolved to only signed JavaType , which won't it overflow? #314 51Bigod opened this issue 2 days ago · 3 comments 51Bigod commented 2 days ago For Example , SMALLIN...
2018-01-13 14:47:32
280
原创 Mysql中哪些Sql不走索引
要尽量避免这些不走索引的sql:SELECT `sname` FROM `stu` WHERE `age`+10=30;-- 不会使用索引,因为所有索引列参与了计算 SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) 1990; -- 不会使用索引,因为使用了函数运算,原理与上面相同 SELECT * FROM `houdunwang` WHE
2018-01-12 12:17:04
18609
3
原创 解决方案(四)— Linux上安装最新版的docker
wget -qO- https://get.docker.com/ | sh解释:从指定url获取shell脚本,作为标准输出放入管道“|”并使用“sh”命令执行管道中的脚本。shell脚本的作用:根据系统版本安装相应版本的docker;配置docker环境;启动docker服务;说明:wget -qO-具体含义可以参见文章《wget -qO- 命令详解》
2018-01-03 16:11:10
1698
转载 Java运行时生成Class的方法
Java是一门静态语言,通常,我们需要的class在编译的时候就已经生成了,为什么有时候我们还想在运行时动态生成class呢?因为在有些时候,我们还真得在运行时为一个类动态创建子类。比如,编写一个ORM框架,如何得知一个简单的JavaBean是否被用户修改过呢?以User为例:public class User { private String id; priv
2017-12-02 12:02:16
660
原创 java获取当前class文件所在路径
在.class文件没有被打包的情况下,如下语句可以获得.class文件的绝对路径:String classFilePath = clazz.class.getResource("").getPath(); 当.class文件被打进jar包之后,上面这条语句就要报错了。这时只能去获取.class文件所在的jar的绝对路径:String classFilePath = clazz.cl
2017-11-30 14:41:15
13738
原创 无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-|1-1-0.dll
这个问题我是在安装Python运行环境的时候出现的,解决办法如下: 1、打开CMD,输入 winver.exe ,回车运行,查看当前Windows版本 如果版本为7600,则首先安装:windows6.1-KB976932-X64.exe(链接),将版本升级为 7601:Service Pack 1,再进行第2步;如
2017-11-26 15:52:14
43644
7
SSH框架整合
2017-03-22
ajax文件上传
2017-03-21
APP上传文件到服务器过慢,需要APP做修改还是服务端做修改?原因是什么?
2017-07-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅