- 博客(32)
- 收藏
- 关注
原创 WebSocket简述及通过node.js的基本实现
WebSocket是自Html5开始在单个TCP连接上进行全双工通信的协议,它使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。
2023-06-15 17:56:04
2766
1
原创 mybatis传参计算
mybatis想要对参数进行直接计算时只能用${}进行参数传递,不可以使用#{},否则会报异常,因为#{}相当于prepareStatement无法识别算式
2018-12-17 17:07:54
4732
转载 Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore的使用
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲:一.CountDownLatch用法二.CyclicBarrier用法三.Semaphore用法一.CountDownLatch用法CountDownLa...
2018-06-14 12:02:53
199
原创 Spring部分注解使用回顾(一)—— @RequestParam与@RequestBody
@RequestParam@RequestParam(name=”id”,required=false,defaultValue=”0”) 用来处理Content-Type: 为 application/x-www-form-urlencoded编码的内容。(Http协议中,如果不指定Content-Type,则默认传递的参数就是application/x-www-form-urlencod...
2018-05-16 10:10:27
238
原创 Spring-Cloud+Eureka微服务的注册与实现
Eureka微服务的注册与实现服务注册表:是服务注册发现组件的核心,用于记录各个微服务的信息,如微服务的名称、IP、端口服务注册与服务发现:服务注册时指微服务启动时把自己的信息注册到服务发现组件上的过程。服务发现是指查询可用微服务列表及其网络地址的机制服务检查:服务发现组件使用一定机制定时检测已注册的服务,如发现某实例长时间无法访问,就会从注册表中移除此实例EurekaEu
2018-01-24 19:58:43
639
原创 spring mvc 拦截器配置时产生的问题
<mvc:interceptors> <mvc:interceptor> <!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller --> <bean id="secuInterceptor" class="com.megameta.authority.interceptor.SecuIn
2017-12-27 16:13:43
198
原创 Maven3 + Spring4 + SpringMVC4 + Mybatis3 搭建流程博客整合
本篇博客完整的整合一下使用以上技术搭建一套web项目的流程本文内容基于引用他人已完成的博客,感谢它人的无私分享框架搭建参照: http://blog.csdn.net/mark_lq/article/details/52334294mybatis typeAlias(别名)使用和resultMap使用: http://www.bubuko.com/infodetail-1808247.htmls
2017-12-27 16:07:13
286
原创 微信公众号开发手册<一>——接收消息的处理
公众号接收消息返回服务器的内容是xml,与平时的传参不同,如下是解析参数的方式。为了方便解析XML数据,我们借助于dom4j,dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,是用来读写XML文件的。/** * 解析微信发来的请求(XML) * * @param request 封装了请求信息的HttpServletReques
2017-08-23 17:20:33
392
原创 javaweb浏览器get方式提交中文处理
使用get方式在url中提交参数时经常会出现乱码的问题,这是由于tomcat默认采用iso8859-1编码,后台接收到数据的时候会出现乱码,有几种解决方式:1、配置服务器编码方式首先可以在配置文件中改变tomcat的默认编码方式,可以在server.xml添加如下配置:<Connector port="8008" protocol="HTTP/1.1" connecti
2017-07-27 14:36:23
469
转载 spring+mybatis整合读取不了配置文件
报错如下:java.sql.SQLException: unkow jdbc driver : ${jdbc.url} 其余错误就不贴了,主要原因是没有读取到配置文件读取配置文件代码<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="true"> <pro
2017-07-24 19:26:24
1195
转载 HttpClient使用详细解释
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更
2017-06-30 18:07:40
363
转载 druid配置WebStatFilter完成网络url统计
druid我们都很熟悉,是一款非常好用的数据连接池,但是很多开发者不知, druid除了数据连接池,还集成了对站点的URL进行统计的功能,下面就详细的为大家讲解一下如何配置druid的url统计。 WebStatFilter用于采集web-jdbc关联监控的数据监控拦截器web.xml配置<filter> <filter-name>DruidWebStatFilter</filter-nam
2017-05-11 15:14:40
11895
1
原创 java通过POI解析Excel表格内容
为了使用SpringMVC读取参数使用MultipartFile接收参数,但MultipartFile与File不同,传参时经常会出现错误,可以通过getInputStream讲其转换为IO流做进一步处理。 public ModelAndView readExcel(MultipartFile aaa){ ModelAndView mav=new ModelAndView();
2017-04-13 10:50:47
6943
原创 mysql关于对日期进行限定条件的搜索
在一个系统的统计模块,经常会遇到根据日期来统计某个时间段内,每一天获取的数据量。一般情况下,看到这种需求都是考虑使用函数来搞定,所以我根据网上找到的资料,将解决办法搬了过来:SELECT count(*), DATE_FORMAT(doc.create_time, '%Y-%m-%d') AS t FROM n_workflow_documents doc
2017-04-07 15:41:32
5936
转载 SpringMVC中使用Interceptor拦截器
一、定义Interceptor实现类SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接
2017-03-06 17:47:10
227
转载 Spring中引入其它配置文件
Spring中引入其它配置文件一、引入其他 模块XML 在Spring的配置文件,有时候为了分模块的更加清晰的进行相关实体类的配置。比如现在有一个job-timer.xml的配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="ht
2017-02-23 11:06:59
431
原创 基于BIO的TCP编程简易实现
服务端为了对一定并发量的保证,以及使机器不至于在过高并发中瘫痪,采用线程池控制最大线程量的方式去维护 但BIO中的方法是阻塞的,在实际开发中几乎不被使用,而都采用java1.7后的NIO2.0版public class BIOBootstrap { public static void main(String[] args) throws Exception { start
2016-12-27 22:51:23
396
原创 MongoDB的使用及集群搭建
大数据面临问题:存储 、 分析存储: 数据库 RMDBS 关系型数据库(MySQL、ORACLE)表 存储 RMDBS: 分库 –> 解决存储 缺点: 不稳定,维护成本高、极大的限制 查询 (只能通过 片键 去查) 性能:基于磁盘 修改|查询>动用磁盘IO 慢 coonection连接数 有限 无法应对 高并发 解决:cache(无法保证缓存和db数据高度一致性) | 读写分离 分
2016-12-27 22:39:57
407
原创 通过Freemarker实现页面静态化的基本操作
页面静态化页面静态化基本实现是指对一些网页内容更新较少的情况下,可以在用户第一次发送请求时动态获取页面内容,并同时生成html的静态页面,再以后的访问中直接对静态页面进行访问,可以大大加快页面的访问速度,可以通过freemarker与UrlRewriteFilter一起作用实现。UrlRewriteFilter UrlRewriteFilter是一种url重写的拦截器,可以接受你的请求url,并转
2016-12-23 00:22:44
2803
原创 SpringSecurity的Filter链式调用机制
本文通过书写自定义拦截器的方式模仿SpringSecurity中Filter的链式调用机制在web.xml中配置拦截器,自定义拦截器<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>com.filter.DelegatingFilterProxy</filter-class></filte
2016-12-22 01:09:54
1876
转载 java自定义注解的基本教程
Java注解提供了关于代码的一些信息,但并不直接作用于它所注解的代码内容。在这个教程当中,我们将学习Java的注解,如何定制注解,注解的使用以及如何通过反射解析注解。Java1.5引入了注解,当前许多java框架中大量使用注解,如Hibernate、Jersey、Spring。注解作为程序的元数据嵌入到程序当中。注解可以被一些解析工具或者是编译工具进行解析。我们也可以声明注解在编译过程或执行时产生作
2016-12-08 01:22:43
231
转载 JSP中自定义标签的简单应用
JSP自定义标签自定义标签是用户定义的JSP语言元素。当JSP页面包含一个自定义标签时将被转化为servlet,标签转化为对呗成为tag handler的对象的操作,即当servlet执行时Web container调用那些操作。 JSP标签扩展可以让你创建新的标签并可以把它直接插入到一个JSP页面。JSP 2.0规范中引入Simple Tag Handlers来编写这些自定义标记。 你可以继承
2016-12-08 01:01:09
224
原创 Hadoop中MultipleOutputs的应用,以及自定义Writable
MultipleOutputs的应用①将结果生成至不同文件夹private MultipleOutputs<Text, Text> outputs=null;@Overrideprotected void setup(Context context) throws Exception { // TODO Auto-generated method stub outputs=new
2016-12-07 00:50:25
824
原创 Hadoop中HDFS、MapReduce的运行原理
HDFS的运行过程概念: namenode:负责记录 数据块 的分布情况– 数据元数据信息 datanode:负责实际存储 数据块 block:是Hadoop最小存储数据单位 默认 128M secondarynamenode: 辅助namenode完成fsimage管理或者优化当用户将文件上传到HDFS中时,首先会将文件信息放入namenode进行处理,
2016-12-06 01:44:06
647
原创 Hadoop的基本使用(3)——MapReduce的基本操作(实现字符统计)
MapReduce:是Hadoop中一个并行计算框架,默认Hadoop提供了一些工具实现对HDFS上数据的分析计算汇总。特点:hadoop充分的利用了集群当中DataNode的节点的CPU和内存,使用这些节点作为计算汇总节点,最终将汇总的数据写回HDFS(默认)。数据: 存储各个dataNode中 (block单位)数据拆分==>数据切片(针对数据块一种逻辑映射)==>MapTask(DataNod
2016-11-30 23:51:14
1219
原创 Hadoop的基本使用(2)——通过代码操作HDFS
1、导入相关jar包hadoop-common 相关jar包 hadoop-hdfs 相关jar包2、指定hadoop入口获得fileSystem对象public void before() throws IOException{ Configuration conf=new Configuration(); conf.set("fs.defaultFS", "hdfs://192
2016-11-29 23:53:32
512
原创 Hadoop的基本使用(1)——环境搭建、HDFS的简单使用
Hadoop HDFS 简介概念: namenode:负责记录 数据块 的分布情况– 数据元数据信息 datanode:负责实际存储 数据块 block:是Hadoop最小存储数据单位 默认 128M secondarynamenode: 辅助namenode完成fsimage管理或者优化hadoop搭建步骤环境:CentOS6.5 32位 JDK 1.7 (在/root/.bash
2016-11-29 23:51:26
6792
1
原创 遇到麻烦问题的解决~
Q:通过ssh、ftp、telnet、访问虚拟机时特别慢,如何解决?A:一般是因为DNS的配置原因,可以修改 /etc/ssh/sshd_config 修改下面的GSSAPIAuthentication noUseDNS no
2016-11-29 19:53:11
282
原创 Redis3集群搭建
1、redis简介redis是一个key-value存储系统。和memcache类似,它支持存储value类型相对更多,包括String,list,set,sortset,这些数据类型都支持push/pop,add/remove及取交际并集差集等更丰富的操作,并且这些操作都是原子性的。与memcache一样,为了保证效率,数据都缓存在内存中。但redis为了进行数据持久化操作,会周期性的把数据写入磁
2016-11-27 17:33:59
290
原创 Redis Sentinel(redis哨兵)介绍
redis sentinelredis-sentinel 为redis提供了高可用的保障。也就意味只sentinel模式可以保证在没有任何人工干预的情况下实现redis故障转移。同样sentinel也并行monitoring、notifications 、configuration provider等服务。 monitoring:监控redis的master和slave是否按照预期在运行。 n
2016-11-27 15:55:57
356
原创 通过字节数组流进行的对象序列化操作
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。 把Java对象转换为字节序列的过程称为对象的序列化。把字节序列恢复为Java对象的过程称为对象的反序列化。对象的序列化主要有两种用途:1) 把对象的字节序列永久地保存到硬
2016-11-27 14:34:24
2823
原创 hello world
之前落下了很多东西,想了想还是决定开始在这里写自己的技术博客。 在这里把自己学到的用到的东西记录下来,更好的整理自己掌握的内容,可以与别人分享这些内容,也可以方便以后复习使用,希望以后的自己看到这个地方,会感谢自己曾经努力过的样子吧。/*这是很多人会写的第一串代码,也让他成为一个开始*/public class Hello{ public static void main(Str
2016-11-26 16:48:22
211
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人