- 博客(38)
- 资源 (203)
- 收藏
- 关注
转载 搭建SSH,从零开始(第N天)—在Struts2中集成Velocity
一,Velocity是什麽?具体概念在百度中都能找到,不赘述。可以参见http://airport.iteye.com/blog/23634简单点说,Velocity与JSP类似。就是一个模板技术,通过后台JAVA程序进行变量的计算和赋值,前端模板vm文件使用后台计算的变量排版表示。优点是1,可以不使用JSP的Taglib,容易扩展2,完全的界面design和后台分离。互不影响...
2018-09-29 23:11:56 204
转载 velocity整合
参考博客velocity(vm)模板引擎学习介绍及语法Velocity模板引擎语法Velocity模板引擎的介绍和基本的模板语言语法使用SpringMVC整合Velocity模版引擎使用 Velocity 模板引擎快速生成代码Velocity 简单Demospringmvc集成 velocity,实现多视图整合(jsp,velocity)velocity的使用简介在velocity使用tool...
2018-09-29 22:10:08 592
转载 HashMap的默认长度为什么是16?
如果两个元素不相同,但是hash函数的值相同,这两个元素就是一个碰撞因为把任意长度的字符串变成固定长度的字符串,所以存在一个hash对应多个字符串的情况,所以碰撞必然存在为了减少hash值的碰撞,需要实现一个尽量均匀分布的hash函数,在HashMap中通过利用key的hashcode值,来进行位运算公式:index = e.hash & (newCap - 1)举个例子:...
2018-09-29 18:48:10 2689
转载 thymeleaf的简单用法-常用标签
一.常用标签的用法1.1 th:text 用于文本的显示,并且可以进行简单的计算。<td th:text="${username}">mlm</td> -> <td>maliming</td><td th:text="9+7">2018</td> -> &am
2018-09-29 18:31:10 2197
转载 ThreadLocal-深度解析
ThreadLocalMapThreadLocalMap是ThreadLocal的内部类,没有实现Map接口,用独立的方式实现了Map的功能,其内部的Entry也独立实现。ThreadLocalMap类图 在ThreadLocalMap中,也是用Entry来保存K-V结构数据的。但是Entry中key只能是ThreadLocal对象,这点被Entry的构造方法已经限定死了...
2018-09-23 11:33:18 179
转载 利用redis实现消息队列之queue模式
redis同样可以实现消息队列的发布订阅功能,发布消息者使用比较简单,订阅消息者则需要手动继承 redis.clients.jedis.JedisPubSub 这个抽象类,消费者有动作时就会回调这个实现类的方法。新建两个maven工程,生产者和消费者。生产者的main方法package com.tansun; import redis.clients.jedis.Jedis; ...
2018-09-21 00:24:51 1433
转载 jquery 实现导航菜单高亮显示
jquery 实现导航菜单高亮显示。实现原理:当选中当前元素时,给当前元素添加样式,同级元素移除样式。效果图如下:具体示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"...
2018-09-21 00:17:22 930 1
转载 Spring Boot:jsp的替代品thymeleaf简单使用
最近开始使用Spring Boot开发轻量级服务器应用,由于jsp和Spring Boot兼容并不好,打包成Jar文件部署后,jsp不能一起打包进Jar包,导致无法生效。官方推荐使用模板(freemarker、thymeleaf等)作为页面展示,经过对比我觉得thymeleaf会更好,所以选择了thymeleaf来代替jsp。文件路径thymeleaf默认的存放目录是resources/t...
2018-09-16 23:15:57 1811
转载 单独 表格滚动
<!doctype html><html><head><meta charset="utf-8"><title>table表格无缝向上滚动-jq22.com</title><script src="http://libs.baidu.com/jquery/1.11.3/jquery.mi
2018-09-16 20:37:29 397
原创 thymeleaf自学笔记
1 如何引入css、js文件2 URLURL在Thymleaf中是第一类公民,有其专有的表达式语法@{...}。共存在2大类URL:绝对URL http://www.your.domain 相对URL,分为四类 相对于页面 user/login.html 相对于上下文 /itemdetails?id=3 (服务的上下文名会被自动添加) 相对于服务器 ~/b...
2018-09-16 17:15:35 476
转载 themeleaf入门例子
JAVA 框架 / SPRINGBOOT / THYMELEAF 入门 基于 SPRINGBOOT 方式 Redis URL 相关下载 文件名 文件大小 thymeleaf.rar 2k 工具版本兼容问题 步骤 1 : 什么是 thymeleaf 步骤 2 : 先运行,看到效果,再学习 步骤 3 : 模仿和排错 步骤 4 :...
2018-09-16 14:08:58 1063
转载 thymeleaf教程
目录thymeleaf的定义spring boot整合thymeleaf语法参考文档thymeleaf笔记thymeleaf比jsp好在哪thymeleaf简单文件thymeleaf配置 application.propertiesthymeleaf urlthymeleaf表达式themeleaf包含 footerthemeleaf条件 ifthemeleaf 遍...
2018-09-16 13:48:19 1955
转载 Netty 接受请求过程源码分析 (基于4.1.23)
前言在前文中,我们分析了服务器是如何启动的。而服务器启动后肯定是要接受客户端请求并返回客户端想要的信息的,否则要你服务器干啥子呢?所以,我们今天就分析分析 Netty 在启动之后是如何接受客户端请求的。开始吧!1. 从源头开始从之前服务器启动的源码中,我们得知,服务器最终注册了一个 Accept 事件等待客户端的连接。我们也知道,NioServerSocketChannel 将自己...
2018-09-16 13:03:55 292
转载 AbstractQueuedSynchronizer AQS框架源码剖析
目录1.引子2.AQS架构设计原理3.AQS源码实现4.简单应用5.总结====正文分割线============一、引子Doug Lea在JSR166中建立了一个小框架,AbstractQueuedSynchronizer同步器框架(AQS)。这个框架为构造同步器提供一种通用的机制,并且被j.u.c包中大部分类使用。包结构如下图,其中AbstractOwnab...
2018-09-16 12:44:10 199
转载 牛是怎么死的?(至少30岁的人才能读懂)
2017-09-07 10:01牛是怎么死的?这个故事很经典,寓意很深!牛耕田回来,躺在栏里,疲惫不堪地喘着粗气,狗跑过来看它。“唉,老朋友,我实在太累了。”牛诉着苦,“明儿个我真想歇一天。”狗告别后,在墙角遇到了猫。狗说:“伙计,我刚才去看了牛,这位大哥实在太累了,它说它想歇一天。也难怪,主人给它的活儿太多太重了。”猫转身对羊说:“牛抱怨主人给它的活儿太多太重,它想歇一天...
2018-09-16 12:39:45 4192
转载 elastic-job的原理简介和使用
官方推荐例子:https://gitee.com/elasticjob/elastic-job-example具体例子参考:https://gitee.com/liliexuan/elastic-job-liteelastic-job是当当开源的一款非常好用的作业框架,在这之前,我们开发定时任务一般都是使用quartz或者spring-task(ScheduledExecutorServi...
2018-09-14 23:10:05 2035 1
转载 HTML CSS + DIV实现整体布局
盒子模型的相关属性margin(外边距/边界) border(边框) padding(内边距/填充 ) 我们看图理解一下各属性作用: 以上属性又分为上、右、下、左四个方向 问题:页面元素的宽度width、高度height如何计算? 答案:元素的实际占位尺寸 = 元素尺寸 + padding + 边框宽度 比如:元素实...
2018-09-14 20:51:22 42467 5
转载 如何让两个div并排显示
网站网页很长用到两个div并排,今天就来看看几种常见的方法原理就是堆砌几个div 用到的 长 宽 及float就可以了方法/步骤 首先我们如图所示的web结构即一个html和css即可实现 打开html页面 定义一个大的div和两个小div 如图所示 第一个方法就是我们最常用的float浮动,只要两个小div的宽度小于等于大div的宽度,即可实现...
2018-09-14 20:46:43 2907
转载 echarts各个配置项详细说明总结
theme = { // 全图默认背景 // backgroundColor: 'rgba(0,0,0,0)', // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd32','#6495ed', '#ff69b4','#ba55d3','#cd5c5c','#ffa500','#40e0...
2018-09-14 20:43:50 299
转载 echarts实现一个页面同时显示多个图表
前言:因工作需要,老大要求给我一个JSON数据,用echarts,写一个option实现多个图表(折线图,饼图,关系图)展示,也就是说只要一个div(dom对象),实现多个不同形状的图表展示,(ps:前期没弄清老大意思,写了三个div来显示-,尴尬--_---)。这里我用了LayUI(表格)+eCharts来,通过引入自定义的js,实现页面效果显示自己在网上找了下,没有找到对应的文章,直接...
2018-09-13 22:58:55 17456 2
转载 延迟任务的实现总结
上一篇写了使用RabbitMQ来实现延迟任务的实现,其实实现延迟任务的方式有很多,各有利弊,有单机和分布式的。在这里做一个总结,在遇到这类问题的时候希望给大家一个参考和思路。延迟任务有别于定式任务,定式任务往往是固定周期的,有明确的触发时间。而延迟任务一般没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件。延迟任务相关的业务场景如下:场景一:物联网...
2018-09-12 22:41:25 257
转载 Netty笔记4-如何实现长连接
前面三章介绍了Netty的一些基本用法,这一章介绍怎么使用Netty来实现一个简单的长连接demo。Netty入门教程——认识Netty Netty入门教程2——动手搭建HttpServer Netty入门教程3——Decoder和Encoder关于长连接的背景知识,可以参考《如何使用Socket实现长连接》 一个简单的长连接demo分为以下几个步骤:长连接流程...
2018-09-10 22:26:11 472
转载 Netty学习笔记
https://segmentfault.com/a/1190000016072310一. Java Blocking I/O ExecutorService executor = Excutors.newFixedThreadPollExecutor(100);//线程池 ServerSocket serverSocket = new ServerSocket();...
2018-09-09 19:21:11 170
转载 netty设计模式-责任链模式
责任链模式的定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系, 将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理他为止。首先来看看责任链模式的四个要素:1、责任处理器接口2、创建链,添加删除责任处理器接口3、上下文4、责任链终止机制。在netty里面,很明显channelHandler和Pipeline构成了责任链模式。让我们通过...
2018-09-08 01:25:21 353
原创 Java高并发处理总结
自己参考大牛博客及视频写了一些关于并发的感悟,高并发的处理思路,无外乎以下几种1 代码层面: 锁优化措施(见本文内容)、尽量简化事务和减少事务2 应用层面:缓存 队列 限流 熔断 3数据库层面: 分库分表 读写分离JDK常见并发包处理工具中,ReentrantLock、countdownlanth、currenthasp、AQS源码一定要多读多看,理解里面的设计精髓。带着问题去思考...
2018-09-07 21:03:20 17470
转载 Netty-内存管理
通过NIO传输数据时需要一个内存地址,并且在数据传输过程中这个地址不可发生变化。但是,GC为了减少内存碎片会压缩内存,也就是说对象的实际内存地址会发生变化,所以Java就引入了不受GC控制的堆外内存来进行IO操作。那么数据传输就变成了这样但是内存拷贝对性能有可能影响比较大,所以Java中可以绕开堆内存直接操作堆外内存,问题是创建堆外内存的速度比堆内存慢了10到20倍,为了解决这个问题Net...
2018-09-05 23:45:48 1358
转载 Java异步NIO框架Netty实现高性能高并发
1. 背景1.1. 惊人的性能数据最近一个圈内朋友通过私信告诉我,通过使用Netty4 + Thrift压缩二进制编解码技术,他们实现了10W TPS(1K的复杂POJO对象)的跨节点远程服务调用。相比于传统基于Java序列化+BIO(同步阻塞IO)的通信框架,性能提升了8倍多。事实上,我对这个数据并不感到惊讶,根据我5年多的NIO编程经验,通过选择合适的NIO框架,加上高性能的压缩二...
2018-09-05 23:37:46 944 1
转载 Spring Data Elasticsearch加Elasticsearch服务实现全文搜索
Elasticsearch是一个开源的基于Lucene的搜索服务器,Elasticsearch是使用Java语言开发的,它提供了分布式多用户全文搜索引擎,提供基于RESTful 的API接口。Elasticsearch还提供了一个Java的Client,以及相应的API。 Spring Data中提供了相应的模块Spring Data Elasticsearch,Spring Data Elas...
2018-09-05 22:54:10 440
转载 剖析Netty4的高性能
1、Netty简介 Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏...
2018-09-05 22:46:22 1617
转载 Netty源码—三、select
NioEventLoop功能前面channel已经准备好了,可以接收来自客户端的请求了,NioEventLoop作为一个线程池,只有一个线程,但是有一个queue存储了待执行的task,由于只有一个线程,所以run方法是死循环,除非线程池shutdown。这个run方法的主要作用:执行selector.select,监听IO事件,并处理IO事件 由于NioEventLoop兼有线程池...
2018-09-05 22:39:14 293
转载 Netty高性能开发备忘录
工作中使用netty,还都是解决小打小闹的问题,还没有遇到超过10k连接情况下,数据高性能分发及连接管理问题。无意中看到这篇文章,先转载一下,以后工作中遇到相关问题可以及时查阅,也希望更多人看到,并从中获取netty优化灵感。 原文链接如下:http://www.10tiao.com/html/321/201611/2659763226/5.html 1. 连接篇1....
2018-09-05 22:35:58 235
转载 Elasticsearch教程(六) elasticsearch Client创建
Elasticsearch 创建Client有几种方式。首先在 Elasticsearch 的配置文件 elasticsearch.yml中。定义cluster.name。如下: cluster.name: sojson-application创建方式一: import static org.elasticsearch.node.NodeBuilder.*; /...
2018-09-05 22:25:50 848
转载 netty源码分析之揭开reactor线程的面纱(三)
上两篇博文(netty源码分析之揭开reactor线程的面纱(一),netty源码分析之揭开reactor线程的面纱(二))已经描述了netty的reactor线程前两个步骤所处理的工作,在这里,我们用这张图片来回顾一下:reactor线程三部曲简单总结一下reactor线程三部曲轮询出IO事件 处理IO事件 处理任务队列今天,我们要进行的是三部曲中的最后一曲【处理任务队列】...
2018-09-04 23:55:53 326
转载 netty源码分析之揭开reactor线程的面纱(一)
netty最核心的就是reactor线程,对应项目中使用广泛的NioEventLoop,那么NioEventLoop里面到底在干些什么事?netty是如何保证事件循环的高效轮询和任务的及时执行?又是如何来优雅地fix掉jdk的nio bug?带着这些疑问,本篇文章将庖丁解牛,带你逐步了解netty reactor线程的真相[源码基于4.1.6.Final]reactor 线程的启动NioE...
2018-09-02 23:18:30 151
转载 netty源码分析之writeAndFlush全解析分析
前言在前面的文章中,我们已经详细阐述了事件和异常传播在netty中的实现,(netty源码分析之pipeline(一),netty源码分析之pipeline(二)),其中有一类事件我们在实际编码中用得最多,那就是 write或者writeAndFlush,也就是我们今天的主要内容主要内容本文分以下几个部分阐述一个java对象最后是如何转变成字节流,写到socket缓冲区中去的pip...
2018-09-02 21:15:57 4608
原创 (一)Netty必学知识点 netty基础知识点总结
Java读源码之Netty深入剖析解析netty各大组件细节/百万级性能调优/设计模式实际运用前言:这是一门对Java开发人员非常重要的课程,源码的学习方式是不可逃避的。Netty也是大型互联网公司面试必备的问题,如果没有分布式开发经验,在面试时提出自己阅读过Netty源码,并能清晰表达的话。这部分内容会是很重要的加分项nioEventloop执行流程Netty 源码阅读的思考---...
2018-09-02 20:41:27 4497 2
转载 netty源码分析之LengthFieldBasedFrameDecoder
拆包的原理关于拆包原理的上一篇博文 netty源码分析之拆包器的奥秘 中已详细阐述,这里简单总结下:netty的拆包过程和自己写手工拆包并没有什么不同,都是将字节累加到一个容器里面,判断当前累加的字节数据是否达到了一个包的大小,达到一个包大小就拆开,进而传递到上层业务解码handler之所以netty的拆包能做到如此强大,就是因为netty将具体如何拆包抽象出一个decode方法,不同的拆...
2018-09-02 18:18:11 1699
转载 Guava并发:RateLimiter限制资源的并发访问线程数
RateLimiter类似于JDK的信号量Semphore,他用来限制对资源并发访问的线程数。RateLimiter limiter = RateLimiter.create(4.0); //每秒不超过4个任务被提交limiter.acquire(); //请求RateLimiter, 超过permits会被阻塞executor.submit(runnable); //提交任务也可...
2018-09-02 18:14:02 2210
vuepress 前后端在一起部署时,需要把前端生成文件放到 springboot识别的目录中
2023-10-05
spring-boot-route-master.zip
2021-08-25
技术案例课职场生涯回顾介绍.zip
2021-01-10
springcloud-demo.zip
2020-12-07
vue2+springbootPRE.zip
2020-11-05
token_demo.zip
2020-10-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人