- 博客(41)
- 资源 (6)
- 收藏
- 关注
原创 Netty 协议开发
Http HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式
2017-04-26 20:37:34 477
原创 Netty 粘包、拆包解决示例
Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也
2017-04-26 18:25:10 710
原创 JAVA序列化 结合 Netty
序列化就是将一个对象的状态(各个属性量)保存起来,然后在适当的时候再获得。 序列化分为两大部分:序列化和反序列化。序列化是这个过程的第一部分,将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象。对象序列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据。恢复数据要求有恢复数据的对象实例序列化的作用 把对象的字节序列永久地保存到硬盘上(通常
2017-04-26 17:51:14 338
原创 Java 网络IO编程
网络编程实质实质就是两个(或多个)设备(例如计算机)之间的数据传输。而要实现两台计算机通过互联网连接进行数据传输,必输要满足计算机网络的5层协议(物理层,数据链路层,网络层,运输层,应用层);当然有划分可能不同,但现在大家比较容易接受理解的是五层模型。 IO在计算机中指Input/Output,也就是输入和输出。IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据
2017-04-26 16:39:12 359
原创 微信开发十 帐号管理
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-帐号管理编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/18/8a8bbd4f0abfa3e58d7f68ce7252c0d6.html public class AccountManagement { private int
2017-04-22 16:54:03 430
原创 微信开发九 自定义菜单
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-自定义菜单编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/5/0d8acdd6d4433c877fbea938a2f133cd.html /* * 自定义菜单 * https://mp.weixin.qq.com/wiki?t=r
2017-04-22 16:46:55 533
原创 微信开发八 用户管理
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-用户管理编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/4/e3427b8e5bd66cfad337af43c8875f14.html 开发者可以使用接口,对公众平台的分组进行查询、创建、修改、删除等操作,也可以使用接口在需要时移动用
2017-04-22 16:42:39 881
原创 微信开发七 素材管理
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-素材管理编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/4/e3427b8e5bd66cfad337af43c8875f14.html 公众号经常有需要用到一些临时性的多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多
2017-04-22 16:36:57 511
原创 微信开发六 发送消息(客服/群发/模板)
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-发送消息编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:客服接口客服接口 当用户主动发消息给公众号的时候(包括发送信息、点击自定义菜单、订阅事件、扫描二维码事件、支付成功事件、用户维权),微信将会把消息数据推送给开发者,开发者在一段时间内(目前修改为48小时)可以调用客服消息接口,通过POST
2017-04-22 12:24:29 1764
原创 微信开发五 被动回复用户消息
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-被动回复用户消息编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/18/c66a9f0b5aa952346e46dc39de20f672.html简述 当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST
2017-04-22 12:10:27 1835
原创 微信开发四 接收事件推送
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-接收事件推送编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/14/f79bdec63116f376113937e173652ba2.html 在微信用户和公众号产生交互的过程中,用户的某些操作会使得微信服务器通过事件推送的形式通知到
2017-04-22 11:47:35 2145
原创 微信开发三 接收普通消息
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。本篇根据开发者文档-接收普通消息编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/14/f79bdec63116f376113937e173652ba2.html当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。请
2017-04-22 10:18:33 349
原创 微信开发二 获取接口调用凭据
本例中有些引用的类与方法不做过多介绍,之后会提供完整源码下载,请自行查看。 本篇根据开发者文档-获取接口调用凭据编写。请对照查看,一些传入与返回参数就不过多介绍。地址为:https://mp.weixin.qq.com/wiki/2/88b2bf1265a707c031e51f26ca5e6512.html获取access token access_token是公众号的全局唯一票据,
2017-04-22 09:48:52 2692
原创 微信开发 一 接入篇
本篇根据开发者文档-接入指南编写。地址为:https://mp.weixin.qq.com/wiki/17/2d4265491f12608cd170a95559800f2d.html服务器配置 获取开发者信息 在项目中配置信息 服务器配置信息 Token : 必须与代码中配置相同,如本处
2017-04-22 09:25:49 392
原创 JMS 简述
Java消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建、发送、读取消息等,用于支持JAVA应用程序开发。在J2EE中,当两个应用程序使用JMS进行通信时,它们之间并不是直接相连的,而是通过一个共同的消息收发服务连接起来,可以达到解耦的效果。使用场景 异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。传统的做
2017-04-20 20:08:23 702
原创 ActiveMQ 与spring整合使用
Queue QueueProducer /** * @description 队列消息生产者,发送消息到队列 */@Component("aQueueProducer")public class AQueueProducer { @Autowired @Qualifier("activeQueueTemplate") private JmsTemplat
2017-04-20 13:56:05 319
原创 ActiveMQ 简述
ActiveMQ是由Apache出品的,一款最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,它非常快速,支持多种语言的客户端和协议,而且可以非常容易的嵌入到企业的应用环境中,并有许多高级功能。特性 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python,
2017-04-20 11:07:58 447
原创 NoSql 简述
NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL”。 NoSQL,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数
2017-04-19 19:55:38 592
原创 MongoDB 工具类及简单测试
因篇幅有限仅贴出添加测试代码。所有代码在篇末提供下载地址。数据库DB /* * MongoDB工具类 Mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个Mongo实例对我们来说已经足够了<br> * 注意Mongo已经实现了连接池,并且是线程安全的。 <br> * 设计为单例模式, 因 MongoDB的Java驱动是线程安全的,对于一般的应用,只要一个Mongo实例即可,<
2017-04-19 15:17:32 552
原创 MongoDB 常用命令
MongoDB的提供了一个面向文档存储,操作起来比较简单和容易。 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName=”Sameer”,Address=”8 Gandhi Road”)来实现更快的排序。 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点
2017-04-19 14:24:41 628
原创 MongoDB 环境搭建
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语
2017-04-19 11:00:44 372
原创 Redis Jedis的使用(下)
单机测试 public class TestRedis { private Jedis jedis; // 获取数据库的连接,非切片客户端连接 @Before public void setup() { jedis = RedisUtil.getJedis(); } @Test public void testRedisPool() {
2017-04-18 20:14:36 300
原创 Redis Jedis的使用(上)
Jedis 是 Redis 官方首选的 Java 客户端开发包。 因篇幅有限,本章仅提供示例代码,不粘贴测试结果。下篇末提供原代码下载,可自行实验。连接工具类 public class RedisUtil { //Redis服务器IP private static String ADDR = "127.0.0.1"; //Redis的端口号 private
2017-04-18 19:44:10 271
原创 Redis 常用命令
Redis 命令用于在 redis 服务上执行操作。 要在 redis 服务上执行命令需要一个 redis 客户端。Redis 客户端在我们之前下载的的 redis 的安装包中。键(key) Redis 键命令用于管理 redis 的键。 命令 注解 返回值 DEL key 该命令用于在 key 存在时删除 key。 被删除 key 的数量。 DUM
2017-04-18 17:36:44 254
原创 Redis 环境搭建
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(
2017-04-18 15:06:54 229
原创 Mybatis 动态 SQL
MyBatis 的强大特性之一便是它的动态 SQL。通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中。 动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似。在 MyBatis 之前的版本中,有很多的元素需要来了解。MyBatis 3 大大提升了它们,现在用不
2017-04-14 13:57:10 276
原创 Mybatis XML高级映射
示例 <select id="selectBlogDetails" resultMap="detailedBlogResultMap"> select B.id as blog_id, B.title as blog_title, B.author_id as blog_author_id, A.id as author_id,
2017-04-14 11:42:37 343
原创 Mybatis XML映射
MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。select 查询语句是 MyBatis 中最常用的元素之一,光能把数据存到数据库中价值并不大,如果还能重新取出来才有用
2017-04-13 19:30:50 364
原创 Mybstis XML配置
MyBatis 的配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息properties 这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。例如: <properties resource="org/mybatis/example/config.pr
2017-04-13 17:22:19 685
原创 Mybatis 入门
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。Hibernate与Mybatis对比 简介
2017-04-13 16:59:18 589
原创 Spring MVC(下)
SpringMVC Controller控制器详解 Controller控制器作用 收集、验证请求参数并绑定到命令对象; 将命令对象交给业务对象,由业务对象处理并返回模型数据; 返回ModelAndView(Model部分是业务对象返回的模型数据,视图部分为逻辑视图名)。 核心注解 @Controller
2017-04-12 20:22:04 365
原创 Spring MVC(上)
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。SpringMVC 与 Struts2 的区别 Struts2是类级别的拦截, 一个类对应一个
2017-04-12 19:27:03 363
原创 Spring AOP
AOP(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的横向多模块统一控制的一种技术。AOP是OOP的补充,是spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。AOP可以分为静态织入与动态织入,静态织入即在编译前将需织入内容写
2017-04-12 16:34:55 307
原创 Spring 资源(下)
在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源、File资源、ClassPath相关资源、服务器相关资源等等很多资源。因此处理这些资源需要使用不同的接口,这就增加了我们系统的复杂性;而且处理这些资源步骤都是类似的(打开资源、读取资源、关闭资源),因此如果能抽象出一个统一的接口来对这些底层资源进行统一访问,是不是很方便,而且使我们系统更加简洁,都是对不同的底层资源使用同一个接
2017-04-12 14:35:44 475
原创 Spring 缓存
缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。 spring从3.1开始支持缓存功能。spring 自带的缓存机制它只在方法上起作用,对于你使用其他持久化层的框架来讲,是没有影响的。Spring 缓存的特点 通过少
2017-04-11 20:56:43 254
原创 Spring 事物
事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。 事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可: 原子性(Atomicity) : 即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做; 一致性(Consistency) : 在事务执行前数据库的数据处于正确的状态,而
2017-04-09 16:19:00 257
原创 Spring 资源(上)
在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源、File资源资源、ClassPath相关资源、服务器相关资源(JBoss AS 5.x上的VFS资源)等等很多资源。因此处理这些资源需要使用不同的接口,这就增加了我们系统的复杂性;而且处理这些资源步骤都是类似的(打开资源、读取资源、关闭资源),因此如果能抽象出一个统一的接口来对这些底层资源进行统一访问,是不是很方便,而且使我们
2017-04-09 12:31:59 331
原创 Spring 表达式
Spring表达式语言全称为“Spring Expression Language”,缩写为“SpEL”,类似于Struts2x中使用的OGNL表达式语言,能在运行时构建复杂表达式、存取对象图属性、对象方法调用等等,并且能与Spring功能完美整合,如能用来配置Bean定义。 SpEL是单独模块,只依赖于core模块,不依赖于其他模块,可以单独使用。表达式语言给静态Java语言增加了动态功能。Sp
2017-04-09 11:02:27 2190
原创 Spring 之 Bean
spring其实就是一个大型的工厂,而Spring容器中的Bean就是该工厂的产品。对于我们而言,我们使用Spring框架所做的就是两件事:开发Bean、配置Bean。对于Spring来说,它要做的就是根据配置文件来创建Bean实例,并调用Bean实例的方法完成“依赖注入”。Bean的定义 < beans…/>元素是Spring配置文件的根元素,< bean…/>元素师< beans../>元
2017-04-07 15:44:55 264
原创 Spring 之 IOC/DI
IoC(Inversion of Control,控制反转)也称为依赖注入(Dependency Injection),作为Spring的一个核心思想,是一种设计对象之间依赖关系的原则及其相关技术。IOC的思想最核心的地方在于,资源不由使用资源的双方管理,而由不使用资源的第三方管理。这可以带来很多好处:第一,资源集中管理,实现资源的可配置和易管理。第二,降低了使用资源双方的依赖程度,也就是我们说的耦
2017-04-07 11:35:10 294 1
JAVA序列化(protoc)
2017-04-26
序列化工具(protoc)
2017-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人