java
文章平均质量分 93
wu_amber
这个作者很懒,什么都没留下…
展开
-
MQ分发Webmagic爬虫任务项目实现
引言一个基于垂直爬虫框架 webmagic 的 Java 爬虫实战项目,旨在提供一套完整的数据爬取,持久化存储和搜索分析的实践样例。项目简介本项目主要实现对媒体车系车型报价的爬取,解析主要车系车型数据,提醒预警报价数据的邮件和短信的通知,利用Elasticsearch实现数据的分析与搜索,形成数据的可视化分析与报表显示。项目设计思想基于爬虫任务统计与可配置开启需求下,针对垂直爬虫框架...原创 2019-12-16 12:42:49 · 914 阅读 · 2 评论 -
Intellij Idea之推荐插件
介绍一下IDEA的一些炫酷的插件,IDEA强大的插件库,不仅能给我们带来一些开发的便捷,还能体现我们的与众不同。1.插件的安装Mac:IntelliJ IDEA -> Preferences -> Plugins;Windows:File -> Settings -> Plugins.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rI...原创 2019-12-05 21:48:09 · 347 阅读 · 0 评论 -
Java异常处理
Java 异常概念Java异常是一个描述在代码段中发生异常的对象,当发生异常情况时,一个代表该异常的对象被创建并且在导致该异常的方法中被抛出,而该方法可以选择自己处理异常或者传递该异常。 Java 异常体系结构 Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类。在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Err...原创 2018-12-11 22:37:08 · 196 阅读 · 0 评论 -
Java泛型介绍
引言泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。 Java中泛型的引入主要是为了解决两个方面的问题:1.集合类型元素在运行期出现类型装换异常,增加编译时类型的检查,2. 解决重复代码的编写,能够复用算法。泛型基础 泛型类我们首先定义一个简单的Box类: 1 2 3 4 5 public ...原创 2018-12-23 15:36:23 · 231 阅读 · 0 评论 -
Springboot+SpringSecurity案例
Spring Security 简介 Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否...原创 2018-12-23 19:46:31 · 6057 阅读 · 2 评论 -
Netty 入门教程
什么是Netty?Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。Netty和Tomcat有什么区别?Netty和Tomcat最大的区别就在于通信协议,Tomcat是基于Ht...原创 2019-01-20 13:27:33 · 429 阅读 · 0 评论 -
RocketMQ入门教程
RocketMQ简单介绍是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。 Producer、Consumer队列都可以分布式。 Producer向一些队列轮流发送消息,队列集合称为 Topic,Consumer 如果做广播消费,则一个consumer实例消费这个Topic 对应的所有队列,如果做集群消费,则多个Consumer 实例平均消费这个topic对应的队列集...原创 2019-01-20 17:21:53 · 23318 阅读 · 3 评论 -
正则表达式
一、概述正则表达式用于文本内容的查找和替换。正则表达式内置于其它语言或者软件产品中,它本身不是一种语言或者软件。二、匹配单个字符. 可以用来匹配任何的单个字符,但是在绝大多数实现里面,不能匹配换行符;. 是元字符,表示它有特殊的含义,而不是字符本身的含义。如果需要匹配 . ,那么要用 \ 进行转义,即在 . 前面加上 \ 。正则表达式一般是区分大小写的,但是也有些实现是不区...原创 2019-01-28 09:23:50 · 798 阅读 · 0 评论 -
Stream详解
什么是StreamJava8 中添加了一个新的接口类 Stream,相当于高级版的 Iterator,通过 Lambda 表达式对集合进行各种非常便利、高效的聚合操作(Aggregate Operation),或者大批量数据操作 (Bulk Data Operation)。Stream不仅可以通过串行的方式实现数据操作,还可以通过并行的方式处理大批量数据,提高数据的处理效率。Stream操...原创 2019-08-19 08:52:03 · 2159 阅读 · 0 评论 -
深入理解String#intern
引言在 JAVA 语言中有8中基本类型和一种比较特殊的类型String。这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念。常量池就类似一个JAVA系统级别提供的缓存。8种基本类型的常量池都是系统协调的,String类型的常量池比较特殊。它的主要使用方法有两种:直接使用双引号声明出来的String对象会直接存储在常量池中。 如果不是用双引号声明的String...原创 2018-11-27 22:06:43 · 191 阅读 · 0 评论 -
Git的简单介绍
Git定义Git是目前世界上最先进的分布式版本控制系统 集中式与分布式Git 属于分布式版本控制系统,而 SVN 属于集中式。集中式版本控制只有中心服务器拥有一份代码,而分布式版本控制每个人的电脑上就有一份完整的代码。集中式版本控制有安全性问题,当中心服务器挂了所有人都没办法工作了。集中式版本控制需要连网才能工作,如果网速过慢,那么提交一个文件的会慢的无法让人忍受。而分布式...原创 2018-11-20 23:38:56 · 267 阅读 · 0 评论 -
Elasticsearch Rest-Client使用教程
Rest-Client使用教程DSL ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。介绍详解案例之Rest-Client REST客户端,通过http与集群交互,用户自定义编组请求JSON串,及解析响应JSON串,完成业务需求原创 2018-11-04 13:50:56 · 7863 阅读 · 0 评论 -
简单介绍Java NIO
Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作,以更加高效的方式进行文件的读写操作。 ①通道和缓冲区 Java NIO系统的核心在于: 通道(Channel)和...原创 2018-08-01 12:52:13 · 169 阅读 · 0 评论 -
多线程知识点简单介绍
1.Java JUC 简介 在Java 5.0 提供了java.util.concurrent(简称JUC )包,在此包中增加了在并发编程中很常用的实用工具类,用于定义类似于线程的自定义子系统,包括线程池、异步IO 和轻量级任务框架。提供可调的、灵活的线程池,还提供了设计用于多线程上下文中的Collection 实现等。2.volatile 关键字-内存可见性 ...原创 2018-08-06 23:14:10 · 296 阅读 · 0 评论 -
Webmagic爬虫案例简介
Webmagic架构设计 WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。webmagic架构图 1.Downloader Downloader负责从互联网上下载页面,以便后续处理。...原创 2018-08-15 22:00:43 · 979 阅读 · 0 评论 -
Tomcat源码简单分析
前言Tomcat是目前应用比较多的servlet容器,有复杂的结构,想要了解它,就应该顺着开发者设计之初的思路来,先了解整体的结构,对整体有了一定的掌控后,再逐个分析,了解感兴趣的细节。架构设计 简单介绍各个模块: Server:服务器的意思,代表整个tomcat服务器,一个tomcat只有一个Server; Service:Server中的一个逻辑功能层, 一...原创 2018-08-16 22:00:42 · 151 阅读 · 0 评论 -
Java面试常见知识点
基本语法static、final、java内部类、transient、volatile关键字的作用,foreach循环的原理 ①static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,甚至静态导包(静态导包就是java包的静态导入,用import static代替import静态导入包是JDK1.5中的新特性)。 被static修饰的成员变...原创 2018-09-02 01:33:27 · 1631 阅读 · 0 评论 -
动态代理与Spring AOP简单介绍
代理模式定义:给某个对象提供一个代理对象,并由代理对象控制对于原对象的访问,即客户不直接操控原对象,而是通过代理对象间接地操控原对象。代理模式UML图代理的实现方式 静态代理:代理类是在编译时就实现好的,Java 编译完成后代理类是一个实际的 class 文件。 动态代理:代理类是在运行时生成的,Java 编译完之后并没有实际的 class 文件,而是在运行时动态生成...原创 2018-08-22 22:22:02 · 208 阅读 · 0 评论 -
Webmagic+Redis+Queue+Scheduled案例分析
案例介绍 由于公司项目需求,我初次接触了Webmagic,一款java爬虫框架,WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来,可以帮助你快速开发出一个高效、易维护的爬虫。公司项目系统欲实现通过定时任务Scheduled全量爬取车型报价,车型报价可以通过易车网等网站爬取,...原创 2018-09-20 23:25:57 · 3263 阅读 · 0 评论 -
Quartz应用
Quartz简介Quartz是一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业; 将任务定义为标准Java组件的作业,这些组件可以执行几乎任何可以编程的程序。Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。 为什么不简单的使用...原创 2018-10-15 23:45:03 · 170 阅读 · 0 评论 -
Springboot+Websocket+Scheduled开发案例总结
案例简介 本人最近由于公司项目需求,有幸接触websocket,公司项目系统消息模板欲实现添加公告时实现用户的定向推送,分立即推送和定时推送,本人实现项目思路是前端页面在登录成功时通过后台redis验证用户身份,以用户id标识安全订阅消息推送接口,在添加系统公告成功时开启定时任务每隔30秒查询未推送的消息实现定向推送,使用Websocket,STOMP技术完成项目需求,期间由于没有...原创 2018-07-26 23:12:04 · 4317 阅读 · 4 评论