- 博客(79)
- 收藏
- 关注
转载 Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)
前言由于在开发My Blog项目时使用了大量的技术整合,针对于部分框架的使用和整合的流程没有做详细的介绍和记录,导致有些朋友用起来有些吃力,因此打算在接下来的时间里做一些基础整合的介绍,当然,可能也不会特别的基础,但是源码会开放给大家,方便大家学习,此次的源码地址为springboot-thymeleaf,多谢大家支持。简介Thymeleaf是一个跟Velocity、FreeMar
2017-09-16 16:06:27
469
转载 Python之函数
简介:定义函数:def xx(): print("xxx")执行函数xx()函数返回值:def emile(): print("发邮件") return '123'r = emile()print(r)结果:发邮件123上述中,return为返回值,返回给r。return想返回什么就返回什么,如果没有写返
2017-09-15 19:18:09
490
转载 说给部分程序员听
我不是个崇拜框架和设计模式的人。但我经常用设计模式解决问题!所以当今天决定项目增加安全框架我丢失了spring security。听到现在风靡的前端框架诸如vue.js,新出的es6,了解后一定程却度嗤之以鼻。都是在抄袭,拿一堆噱头炒作再加入所谓的新的思想,哄的年轻的程序员和部分老中国程序员团团转,不知道有什么好追崇的,成堆的程序员成了奴隶。忘掉了最基础最原始的东西。解决问题才是正道!解决现实
2017-09-15 14:38:11
391
转载 spring boot+mybatis 多数据源切换
由于公司业务划分了多个数据库,开发一个项目会同事调用多个库,经过学习我们采用了注解+aop的方式实现的1.首先定义一个注解类@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface TargetDataSource { String value();//此处接收的是数据源的
2017-09-15 09:42:08
372
转载 Apache开启压缩功能
起源 在一般的web服务器中,都会开启压缩功能,也就是deflate或者是gzip的压缩。 开启压缩功能主要的目的是为了减少传输的带宽,从而当服务器响应给客户端的时候,会大大减少传输的数据,代价就是在服务器段需要消耗cpu时钟周期,因为压缩是在服务器端进行的,并且压缩还是比较损耗cpu的。 在进行压缩的时候,一般压缩的都是静态文件,例如图片,js,c
2017-09-14 18:02:08
400
转载 【重构之法】代码的坏味道
代码的坏味道 坏味道意指代码中出现的可以被改进的地方。当你嗅到坏味道的时候,也就意味着重构的时机到了。重构就是对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 以下是《重构》中列出的“坏味道“。 1. 重复代码 重复是代码腐朽之源。重复意味着当发生变化时,总是有很多的地方需要修改,也就是说需要对很多不同
2017-09-14 13:02:07
374
转载 Docker 入门实践
欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~作者:张戈导语本文从新手视角记录了一个实际的Dokcer应用场景从创建、上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法。通过Docker快速拉起一个定制服务,极大的简化了部署,加快了业务部署节奏,并降低了运维成本。 ------ 人生苦短,快用Docker。一、实践背景初次接触Docker,按照
2017-09-13 20:58:06
524
转载 大龄程序员肉翻记录【二】
上一篇说了一下面试准备和 behavior question 的准备方式,这篇说一下面试过程中各个阶段的准备方法,screen interviewgeneral question这些是第一轮 HR 给你说的,无法就是你对他们公司有什么了解,为什么想换工作,如果 relocate,会不会把家人带过来。我觉得最重要的一点就是你的动机,也就是你为什么要来面试?以下是几点千万不能说的1.
2017-09-13 16:14:06
1049
1
转载 JS中一些常用的代码块
本文记录了一些工作中常用到的js代码。1. 生成指定范围内的随机数例如随机获取颜色rgba的参数值时function setRandomNum(m,n){ return Math.floor(Math.random()*(n-m+1)) + m;}2. json转url参数当进行http请求,可能需要把json转化为url参数function json2url(j
2017-09-13 11:34:05
437
转载 深入理解计算机系统(1.1)------Hello World 是如何运行的
上一篇序章我谈了谈 程序员为啥要懂底层计算机结构 ,有人赞同也有人反对,但是这并不影响 LZ 对深入理解计算机系统研究的热情。这篇博客以案例驱动的模式,通过跟踪一个简单 Hello World 程序的生命周期开始系统的学习,包括它被程序员创建,到在系统上运行,输出简单的消息,然后终止。LZ 将沿着这个程序的声明周期,先简要的介绍一些逐步出现的关键概念、专业术语以及组成部分。后面将会详细展开。
2017-09-12 19:54:26
521
转载 Netty自娱自乐之协议栈设计
---恢复内容开始--- 俺工作已经一年又6个月了,想想过的真快,每天写业务,写业务,写业务......。然后就是祈祷着,这次上线不要出现线上bug。继续这每天无聊的增删改查,学习学习一下自己感兴趣的事,就把自己当作小学生。然后学学习,打发打发时间,如果以后自己能用到呢?这又有谁说的清楚。 好了,最近在学习Netty,主要看了这2本书的一些内容,第一本就是《Netty实战》,第二本就
2017-09-12 14:30:03
362
转载 调用Android自带浏览器打开网页
转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/77928608在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接。只需要传入一个uri,可以是链接地址。启动android默认浏览器在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏
2017-09-12 09:42:01
2068
转载 Semaphore实现原理分析
synchronized的语义是互斥锁,就是在同一时刻,只有一个线程能获得执行代码的锁。但是现实生活中,有好多的场景,锁不止一把。比如说,又到了十一假期,买票是重点,必须圈起来。在购票大厅里,有5个售票窗口,也就是说同一时刻可以服务5个人。要实现这种业务需求,用synchronized显然不合适。查看Java并发工具,发现有一个Semaphore类,天生就是处理这种情况的。先用Sema
2017-09-11 17:42:03
11078
4
转载 Android彻底组件化demo发布
今年6月份开始,我开始负责对“得到app”的android代码进行组件化拆分,在动手之前我查阅了很多组件化或者模块化的文章,虽然有一些收获,但是很少有文章能够给出一个整体且有效的方案,大部分文章都只停留在组件单独调试的层面上,涉及组件之间的交互就很少了,更不用说组件生命周期、集成调试和代码边界这些最棘手的问题了。有感于此,我觉得很有必要设计一套完整的组件化方案,经过几周的思考,反复的推倒重建,终于
2017-09-11 13:02:02
637
转载 『默哀』你的梦或许因为这个新闻而碎了【用你的程序语言 抛出一行异常】
对很多程序猿而言:提升技术,构思产品,熬夜编码,拉到风投,艰苦创业,做大公司 —— 这是很多程序猿的梦想。 2017-09-09最新新闻 —— 你的梦或许碎了:《传WePhone创始人自杀,去世前称被前妻勒索1000万》 立两个Flag先:> 新闻最新发生,目前民意是 95%支持 创业者。但!目测两天之内,其妻翟某某 就会请 水军 赶赴战场 —— 祸乱三观。> 逼丈
2017-09-10 20:46:09
422
转载 Gvim安装nerd_tree插件
1、先去官网下载nerd_tree插件 http://www.vim.org/scripts/script.php?script_id=16582、解压缩将nerd_tree目录下的doc目录和plugin目录下的文件分别复制到Vim目录下vim72的doc和plugin3、将nerd_tree解压缩后的文件复制到vim72文件目录下4、在_vimrc文件添加如下代码"NER
2017-09-10 15:53:58
1825
转载 『默哀』你的梦或许因为这个新闻而碎了【用你的程序语言 抛出一行异常】
对很多程序猿而言:提升技术,构思产品,熬夜编码,拉到风投,艰苦创业,做大公司 —— 这是很多程序猿的梦想。 2017-09-09最新新闻 —— 你的梦或许碎了:《传WePhone创始人自杀,去世前称被前妻勒索1000万》 立两个Flag先:> 新闻最新发生,目前民意是 95%支持 创业者。但!目测两天之内,其妻翟某某 就会请 水军 赶赴战场 —— 祸乱三观。> 逼丈
2017-09-10 11:25:58
1684
转载 Express + Session 实现登录验证
1. 写在前面当我们登录了一个网站,在没有退出登录的情况下,我们关闭了这个网站 ,过一段时间,再次打开这个网站,依然还会是登录状态。这是因为,当我们登录了一个网站,服务器会保存我们的登录状态,直到我们退出登录,或者保存的登录状态过期。那服务器是通过什么存储我们的登录状态的呢? 答案就是 Session ,服务通过 Session 能够记录每个客户端连接的状态。关于 Session 的原理,在这
2017-09-09 19:41:55
737
1
转载 单链表反转java代码
据说单链表反转问题面试中经常问,而链表这个东西相对于数组的确稍微难想象,因此今天纪录一下单链表反转的代码。1,先定义一个节点类。1 public class Node {2 int index;3 Node next;4 5 public Node(int index, Node next) {6 this.index = ind
2017-09-09 14:53:55
351
转载 Java基础——Servlet(八)文件上传下载
一、简单的文件上传常见的组件Smartupload , Apache 的 commons FileUploadSmartupload上传的步骤:1.初始化上传上下文2.准备上传3.保存文件 <% if(request.getParameter("flag")!=null){ SmartUpload su=n
2017-09-09 10:01:55
263
转载 我的Markdown的利器——Markdown Here、有道云笔记、iPic
Markdown逐渐成为大家文章编辑的首选,这里推荐两个比较冷门的Markdown工具。用什么当做Markdown的主力工具?网上有很多人推荐的Markdown的工具包括专业的Markdown工具,如Mou,macdown等,也有人用编辑器装上插件后就使用,sublime、atom、vs code,一般编辑器可能就无法实时预览。这里我推荐一个好用的大家都听过的工具——有道云笔记。新
2017-09-08 18:01:55
1806
转载 Nginx + Memcached 实现Session共享的负载均衡
session共享 我们在做站点的试试,通常需要保存用户的一些基本信息,比如登录就会用到Session;当使用Nginx做负载均衡的时候,用户浏览站点的时候会被分配到不同的服务器上,此时如果登录后Session就在不同发服务器上,A记住了用户的登录状态,可是下一次用户请求被分配到B去了怎么办?不可能让用户再登陆一次,所以要让session在不同的服务器上都能获取到相同的内容。方法
2017-09-08 13:25:54
820
转载 根据HttpServletRequest获取用户真实IP地址
原因: 当我们通过request获取客户端IP时,自身服务器通常会为了保护信息或者负载均衡的目的,对自身服务器做反向代理。此时如果我们通过request.getRemoteAddr();可能获取到的是自身代理服务器的IP,而无法达到获取用户请求ip的目的。 解决办法: 以下整理了各个代理服务器自己开发的转发服务请求头,这些请求头都不是标准的http请求头,不一定所有的代理都
2017-09-07 21:33:52
523
转载 MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据。常见的非关系型数据库还有:Redis,但 MongoDb 比 redis 更具有数据库的特性。MongoDb的基本数据结构与 MySQL 等关系型数据库一样,MongoDb 也有类似的概
2017-09-07 16:41:54
462
转载 通过Spark Rest 服务监控Spark任务执行情况
1、Rest服务 Spark源为了方便用户对任务做监控,从1.4版本启用Rest服务,用户可以通过访问地址,得到application的运行状态。 Spark的REST API返回的信息是JSON格式的,开发者们可以很方便地通过这个API来创建可视化的Spark监控工具。目前 这个API支持正在运行的应用程序,也支持历史服务器。在请求URL都有/api/v1。比如,对于历史服务器
2017-09-07 12:05:52
5135
1
转载 Ubuntu16.04+CUDA8.0+CUNN5.1+caffe+tensorflow+Theano
前言 经过一周的不懈努力,通过对网站各种安装教程的学习,终于呕心沥血的完成本次的环境搭建= =。虽然网站的教程多不胜数,但是学习下来,总有一些不尽人意的地方,比如一些命令行中少了一个空格或者什么的,对于一个Ubuntu小白(就像我一样+_+)来说出了问题,很难察觉。现在就根据我自身在安装过程中的一些体会总结,来详细地梳理一遍,一是可以给自己做一个记录下次配置安装的时候会方便很多,二是也希望跟
2017-09-06 20:13:50
2792
转载 ASP.NET MVC5+EF6+EasyUI 后台管理系统(86)-日程管理-fullcalendar插件用法
前言本文分享fullcalendar用法,最后面提供代码下载说到日程管理,基于JQuery的插件FullCalendar当之无愧,完整的API稳定和调用方式,非常易于扩展!可以用于系统的个人历程管理,系统的任务日历列表.支持按:月、周、日来查看,非常实用FullCalendar插件下载下载使用下载好FullCalendar解压,里面包含了demo和必要的JS,C
2017-09-06 15:25:50
1328
转载 【Unity与23种设计模式】代理模式(Proxy)
GoF中定义:“提供一个代理者位置给一个对象,好让代理者可以控制存取这个对象。” 代理模式多用来优化资源的加载当资源已经加载过时,使用原来的资源当资源没有加载过时,开始加载此过程由代理模式控制 代理模式就像是一个过滤器只有在一定条件下才可以执行一定的代码这个条件可以在外部进行控制 //原来的功能类public abstract class S
2017-09-06 10:33:49
934
转载 js if for 详解 获取元素方式 及一些js 基础知识
##获取元素的新方法##--document.querySelector('Css Selector{css选择器}') 接收一个css选择器(通配,群组,类,包含,id。。。。等) 若这个选择器对应的是一组元素,就找第0个,注意js从0开始计数。CSS计数从一开始。##判断##当同一种操作有两种不同结果时要用ifif(判断条件){条件成立执行内容}else{条
2017-09-05 18:53:47
296
转载 小div在大div里面水平垂直都居中的实现方法
关于如何设置小盒子在大盒子里面水平垂直方向同时居中的实现方法有很多种,下面仅列举了常用的几种。首先看一下要实现的效果图及对应的html代码:div class="parent"> div class="child"> div>div>方法一:使用定位的方法 .parent {
2017-09-05 13:45:48
20362
1
转载 MyBatis从入门到放弃七:二级缓存原理分析
前言 说起mybatis的一级缓存和二级缓存我特意问了几个身边的朋友他们平时会不会用,结果没有一个人平时业务场景中用。 好吧,那我暂且用来学习源码吧。一级缓存我个人认为也确实有些鸡肋,mybatis默认开启一级缓存,支持在同一个会话(sqlsession)同一个statement执行两次,则第二次会默认会使用第一次创建的缓存对象。 二级缓存前一篇粗略介绍了下,
2017-09-04 21:41:43
288
转载 shell脚本中的dat,计算器,内置变量的用法
什么是shell脚本。首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。说白了,shell脚本就是一些命令的集合。举个例子,我想实现这样的操作:1)进入到/tmp/目录;2)列出当前目录中所有的文件名;3)把所有当前的文件拷贝到/root/目录下;4)删除当前目录下所有的文件。简单的4步在shell窗口中需要你敲4次命令,按4
2017-09-04 12:13:47
725
转载 设计模式(14)--Command(命令模式)--行为型
作者QQ:1095737364 QQ群:123300273 欢迎加入!1.模式定义: 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。 命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。2.模式特点:
2017-09-03 20:21:43
306
转载 Selenium TestNG Java环境搭建过程中所遇问题汇总
【问题一】运行时报Unalbe to connect to host 127.0.0.1 on port 7855 【问题分析】Selenium版本与火狐版本不一致,需要下载对应的版本【解决方式】根据Selenium版本下载对应的火狐版本,版本具体对应方式可以查看官网相关说明(http://www.seleniumhq.org/download/)【问题二】运行时报Main函数错误
2017-09-03 15:37:43
347
转载 bam文件softclip , hardclip ,markduplicate的探究
测序产生的bam文件,有一些reads在cigar值里显示存在softclip,有一些存在hardclip,究竟softclip和hardclip是怎么判断出来的,还有是怎么标记duplicate的reads的,我怀着这些问题进行了探究。测试步骤编辑两个bed文件,分别含有我们需要的read1和read2位置,这里每个文件包含两条read1或者两条read2,read1、read2一对
2017-09-03 11:01:43
4638
转载 try...catch...finally语句块
try-catch-finally语句主要是用来处理检查异常,捕获并处理,以及最后必须要执行的finally块。try-catch-finally语句入门:1.try-catch-finally语句的一般语法形式为: try { // 可能会发生异常的程序代码 } catch (Type1 id1) { // 捕获并处理try抛出
2017-09-02 19:05:46
673
转载 C语言指针详解
前言这不是我第一次写关于C指针的文章了,只是因为指针对于C来说太重要,而且随着自己编程经历越多,对指针的理解越多,因此有了本文。 为什么需要指针?指针解决了一些编程中基本的问题。第一,指针的使用使得不同区域的代码可以轻易的共享内存数据。当然你也可以通过数据的复制达到相同的效果,但是这样往往效率不太好,因为诸如结构体等大型数据,占用的字节数多,复制很消耗性能。但使用指针就可以很好
2017-09-02 14:25:54
919
1
转载 云计算之路-阿里云上-新车限行:新购服务器无法访问任何远程25端口
昨天我们在一台负载均衡中添加了1台新购的服务器,服务器的系统是用同一个负载均衡中另一台服务器的镜像创建的,加入的安全组也与另外一台一模一样。这样一个习以为常的操作,我们根本没想到会出问题。但后来发现,新购的这台服务器竟然无法通过内网连接邮件服务器的25端口,而另外1台服务器可以正常连接,其他服务器也可以正常连接,唯独这台新购的服务器。太奇怪了,2台服务器的所有配置都一样,邮件服务器的防火墙与安
2017-09-02 09:53:39
1096
转载 JMeter集合点
位置:添加--》 定时器--》Synchronizing Timer 注意:集合点放在所有操作之前。 假设线程组线程数设置的是50个,那么希望50个都准备好一块上,那么集合点中也设置50,如果希望每等待10个线程就一起请求,那么集合点设置成10即可;但是这里有一个原则就是集合点设置的数字满足两个条件脚本才能正常运行:(1) 集合点设置数(2)线程组线程数量
2017-09-01 18:13:42
378
转载 浅谈sql优化
(1)选择最有效率的表名顺序(只在基于规则的优化器中有效):Oracle的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其
2017-09-01 13:25:40
398
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人