- 博客(116)
- 收藏
- 关注
原创 SpringBoot+Vue讲解系列介绍(本专辑实体书已出版)
最近打算把平时记录在本地的项目代码、笔记及疑难问题等汇集成博文发表。因为最近一直是在使用SpringBoot及SpringCloud全家桶技术,所以最新整理出来的应该是SpringBoot全家桶及Vue技术。初步设想,通过一个小项目完成SpringBoot与模板引擎ThymeLeaf结合,使用Bootstrap或Layui技术做传统的网站(请求–>controller转发页面,及Jque...
2019-12-04 16:07:35 3942 12
原创 Java Socket简易版一对一聊天程序实现
Socket编程,会将两个通信进程分为客户端和服务器端。一对一聊天软件的客户端和服务器端可任意指定。Socket编程的服务器端提供ServerSocket类,客户端提供Socket类。服务端的ServerSocket指定绑定的端口,客户端的Socket需要指定ServerSocket的IP和端口进行创建。服务器端使用无限循环,当接收到客户端的连接时,也生成一个Sokcet对象,这样Server端的Socket对象和客户端的Socket对象就可以通信。所谓通信对任何一方来说都是发送消息和接受消息,而发送
2022-05-27 15:02:00 1017 2
原创 Kafka3.2教程(一)消息队列与Kafka原理
在ActiverMQ、RabbitMQ、RocketMQ等等诸多的消息队列技术中,Kafka是适合于大数据领域使用的消息队列。 Kafka是一个采用发布-订阅模式的消息队列,具有以下特点:易用性好,提供了较少的核心功能,但是提供超高的吞吐量,毫秒级的延迟,对数据可以持久化,并且根据需要可以任意搭建集群扩展。 
2022-05-21 21:00:00 1094
原创 Kafka3.2教程(三)Java操作Kafka
在hp2上启动kafka在IDEA中新建Maven项目,引入Kafka客户端依赖:<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>3.2.0</version></dependency>生产者:package com.alan;
2022-05-21 17:09:31 700
原创 IDEA新建Spring Boot项目,无法连接https://start.spring.io/
今天创建Spring Boot项目,发现https://start.spring.io/无法访问。。经过测试发现确实是该网站无法访问,即不是IDEA的问题,不知道以后是否可以恢复。。解决办法:选择Custom填上阿里云的镜像,以下:https://start.aliyun.com/...
2022-05-21 16:16:02 954
原创 Kafka3.2教程(二)在Linux环境下搭建与测试运行
安装单机版的Kafka:下载kafka_2.13-3.2.0.tgz,上传到hp2服务器。Kafka运行,依赖于ZooKeeper,需要先搭建好Zookeeper,其中安装Zookeeper请参见本博客专门文章:ZooKeeper3.4.6分布式环境搭建部署单机版Kafka环境:解压:tar -xvf /apps/kafka_2.13-3.2.0.tgz -C /usr/local/建立软连接: ln -s kafka_2.13-3.2.0/ kafka3配置环境变量:在/etc/p
2022-05-21 16:05:42 1496
原创 Flume教程(一)Flume监听目录,将目录中的文件上传HDFS
在hp3上新建目录/test_flume,让flume监听该文件夹,实际工作中,该目录可以设置为应用系统服务端的日志文件夹。在flume的job文件夹下,新建: touch flume-dir-hdfs.conf在里面填写内容:a1.sources = r1a1.sinks = k1a1.channels = c1# Describe/configure the sourcea1.sources.r1.type = spooldir#监听的目录位置a1.sources.r1.spoo
2022-05-20 23:30:00 1602
原创 Flume教程(一)Flume环境搭建与测试、使用
安装一、将apache-flume-1.9.0-bin.tar.gz上传到hp3的/apps文件夹下二、解压:tar -xvf /apps/apache-flume-1.9.0-bin.tar.gz -C /usr/local三、对解压后的文件建立一个软连接,命名为flume四、配置环境变量,在profile.d下新建flume.sh编辑内容为:export FLUME_HOME=/usr/local/flumeexport PATH=$PATH:$FLUME_HOME/bin并让其生效
2022-05-19 11:53:48 1251
原创 Sqoop教程(二)使用Sqoop在MySQL与Hive之间进行数据导入导出操作
Sqoop主要作用是提供方便的Hive表和关系型数据库表的数据的导入导出操作。运行Sqoop需要启动Hadoop在hp1的MySQL中新建数据库test_sqoop,并建表student:表结构:表数据:根据MySQL中student表结构,直接在Hive中建立一张表student_h:sqoop create-hive-table -connect jdbc:mysql://localhost:3306/test_sqoop -table student -username root -p
2022-05-11 21:30:00 1653
原创 Sqoop教程(一)Sqoop环境搭建
一、上传Sqoop到服务器/apps文件集二、解压:tar -zxvf /apps/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local三、建立软连接:ln -s sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop如图所示:四、修改环境变量cd /etc/profile.d/ vi sqoop.shexport SQOOP_HOME=/usr/local/sqoopexport PATH=$PATH:$SQOO
2022-05-09 17:08:19 1169
原创 SSM框架实战详细教程(十七)Spring AOP
AOP是面向切面编程,它解决的是在执行a()方法前后,在b()方法前后,有需要统一处理的场景问题,如日志、事务。Spring当前的的AOP是由动态代理机制实现,具体是使用JDK自带的动态代理类或使用CGLib库所提供的动态代理工具实现。如果觉得动态代理技术可能会影响运行速度,还可以使用AspectJ在编译阶段将代码织入的方式实现。  
2022-04-04 23:45:00 457
原创 SSM框架实战详细教程(十六)Spring DI
Spring 是一个在设计层面上进行模块之间解耦合的框架。 DI和AOP是它为解耦合提供的两大主要功能。 DI(Inversion of Control)即依赖注入,它强调的是怎么找到接口所对应的实现类,怎么将实现类对象装配
2022-04-04 21:45:00 629
原创 SSM框架实战详细教程(十五)贯穿项目实战之引入Spring
Spring框架是架构设计层面的事情,它的出现可以让项目模块之间实现很好的解耦合,便于团队合作、开发效率、后期维护,但是对于初学者来说,它不像Spring MVC和MyBatis的那样好理解,因为Spring MVC和MyBatis对标的是替换Servlet、JDBC,有很好的参照物对比,可以瞬间理解它们的用处。 而对
2022-04-02 20:45:00 795
原创 SSM框架实战详细教程(十四)贯穿项目实战之三层架构
之前我们的项目足够简单,所以使用的是两层架构,现在为了学习Spring,需要使用行业中常见的三层架构,关于分层开发的原则请看下图: 本次对项目的调整,主要是由之前的controller调用dao,改成controller调用service,service调用dao。项目结构: &
2022-04-01 22:00:00 1389
原创 SSM框架实战详细教程(十三)MyBatis贯穿项目实战
本篇文章将MyBatis引入到贯穿项目中,并将学生和班级的关系在展示学生, 新增学生中体现。 效果如下: 项目当前使用的技术是Spring MVC+MyBatis,项目结构如下: &
2022-03-31 23:45:00 1089 1
原创 SSM框架实战详细教程(十二)MyBatis动态语句与${}参数
本篇文章介绍MyBatis较为常用的两个知识点,一个是动态语句,一个是${}参数。 动态语句: 提供where、set、if、trim、choose等标签,我们以if为例,加入我们想通过条件组合的形式查询学生数据,如单独查姓
2022-03-31 20:30:00 1278
原创 SSM框架实战详细教程(十一)MyBatis关联关系之一对多和多对多
多对一和一对多是站的角度不同,班级和学生是典型的一对多关系。 在数据库二维表中,无论是一对多还是多对一都是在多的方建一列引用一的方的主键值。 而在面向对象的世界里面,是在一的方建多的方的容器型属性。该容器可以是数组、List
2022-03-30 23:00:00 1782
原创 SSM框架实战详细教程(十)MyBatis关联关系之多对一
实体与实体之间的关系分为多对一、一对多和多对多。 学生和班级是典型的多对一关系。 多对一在二维表中的实现是在“多"的方建一列,其值是引用”一“的方的主键值: &n
2022-03-30 22:00:00 474 1
原创 SSM框架实战详细教程(九)MyBatis增删改查
查询,在上两篇文章中已经讲完,本章主要是进行增删改。StudentDao.java 定义方法public interface StudentDao { int add(Student stu); int update(Student stu); int delete(int id);}StudentDao.xml中使用MyBatis提供的一套语义化标签:、、 <insert id="add"> insert into student
2022-03-29 22:00:00 912
原创 SSM框架实战详细教程(七)MyBatis环境搭建与基本操作
回顾一下JDBC,如下图,为了实现一个数据库表的查询,我们要完成JDBC六个步骤,其中对于查询有大量的工作是将二维表的数据整理成面向对象的List或实体类对象。 MyBatis技术的推出正是为了将Java和SQL相分离,MyBatis解决了模板型代码的问题。下面搭建MyBatis环境,因为MyBatis是一个持久层框
2022-03-28 22:00:00 932
原创 SSM框架实战详细教程(八)MyBatis传参
Java和SQL相分离,就面临Java和XML中参数匹配的问题,我们称之为MyBatis的传参。MyBatis的传参规则较多,较为混乱,整理如下所示:1.单个参数,xml中可以使用任意字符,但建议和Java形参名保持一致,增强可读性2.多个参数1)可以使用arg0 arg12) 可以使用param1 param23)使用@Param注解约定参数名(这种情况还可以使用param1,但不能使用arg0)3.JavaBean参数,直接在xml中使用JavaBean的属性名具体测试代码如下:Stu
2022-03-28 17:43:14 985
原创 SSM框架实战详细教程(六)Spring MVC贯穿项目实战
完成了Spring MVC的学习,即可使用Spring MVC进行项目实战,使用Spring MVC替换本系列第二篇中的学生模块中的Servlet技术。在这个过程中切记,Spring MVC是一个Controller层的技术,它取代的是Servlet,它不会对dao层和View造成改变。这也是分层开发的好处。 但是需要
2022-03-25 22:45:00 2152
原创 SSM框架实战详细教程(五)Spring MVC使用
要学习Spring MVC,必须清楚Servlet的作用,才能对比认识到Spring MVC的作用。因为Spring MVC是封装了Servlet,对外提供一套简化的接口供开发者使用。Servlet主要作用:1.提供对外的Web访问接口,可以通过URL访问该Servlet类2.转发3.重定向4.接受参数...
2022-03-24 22:30:00 995
原创 SSM框架实战详细教程(四)Spring MVC环境搭建与测试
在testJavaEE项目下,新建一个testmvc项目(Maven Webapp项目),作为Spring MVC的学习,项目结构如下:为了方便,在pom.xml中直接引入SSM的所有依赖。本次使用的Spring版本为5:<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8<
2022-03-23 20:00:00 1451
原创 SSM框架实战详细教程(三)IDEA+Maven搭建项目
本章内容将搭建Maven,并且与IDEA关联,然后将上一篇中使用Eclipse中开发的普通Java Web项目改造成IDEA+Maven形式。 搭建Maven,并且与IDEA关联请查看Maven配置及eclipse和idea中使用文章。  
2022-03-22 17:21:13 3998
原创 SSM框架实战详细教程(二)Java Web前置项目
在Java Web学习过程中,我们使用的是Eclipse开发工具搭建的Java Web项目,因为Eclipse对初学者方便易上手。而在SSM阶段,我们要符合行业大多数的使用习惯,使用IDEA+Maven的形式。 为了便于承上启下,我们先使用Eclipse搭建传统的项目开发一个我们贯穿项目。 &n
2022-03-22 17:07:05 7365
原创 SSM框架实战详细教程(一) 系列介绍及基本概念
本系列文章上接Java Web实战详细教程,下连Spring Boot实战详细教程。 SSM框架是Spring MVC+Spring+MyBatis的缩写,曾取代SSH在2011年——2018年在Java企业级开发中大行其道。虽然现在其名头已经被Spring Boot取代,但实际上真正了解Spring Boot的人会知
2022-03-22 16:04:04 4621
原创 Spark3.2教程(十)编程Scala程序在Standalone集群中运行
如果运行出现以下报错:Exception in thread "main" java.lang.NoSuchMethodError: scala.reflect.ClassTag$.Int()Lscala/reflect/ManifestFactory$IntManifest;是Scala版本不匹配造成,请参见:Spark3.2教程(前置)关于Spark3.2.0与Scala版本的坑在IDEA中开发:package com.alanimport org.apache.spark.{Spar
2021-12-24 22:00:00 1485
原创 Spark3.2教程(前置)关于Spark3.2.0与Scala版本的坑
搭建和使用最新版的Spark3.2.0,在版本上踩了很多坑,特此记录一下,避免后来者犯错。首先看下图,即官网下载Spark的版本选择上的红框介绍: 这里介绍了Spark3用的是Scala2.12,Spark3.2+用的是Scala2.13,但是如果下载下来会发现,该包下的Scala版本是2.12.15,如下图所示:
2021-12-24 13:33:58 5335
原创 Spark3.2教程(九)CentOS7下Spark Standalone分布式搭建
Spark搭建方式有local、Standalone、on Yarn等。local模式适合程序的开发测试Standalone模式适合小规模数据on Yarn适合大数据量大,并且可能依赖于其他计算引擎,如MapReduce,这样可以更好的和Hadoop集成 因为Spark本质上是一个计算引擎,对于学习它而言,用
2021-12-23 23:15:00 1444
原创 Spark3.2教程(八)一个简单的Spark Streaming处理网络流数据
MapReduce及Spark批处理、Spark SQL只能进行离线计算,无法满足即时性业务需求,如实时推荐、实时网站性能分析等。 流式计算可以解决这些问题,目前有三种比较常用的流式计算框架,它们分别是Storm,Spark Streaming和Flink。
2021-12-23 22:00:00 1124
原创 Java Web实战详细教程(二十四)JSTL标签和EL表达式实战
在上一篇文章中,我们讲解了JSTL标签和EL表达式的用法,本篇文章,我们将所学的知识运用到贯穿项目中。 将以下学生展示界面的JSP替换成JSTL和EL。其中EL表达式是Java Web自带的,JSTL需要加入jar包,需要在lib下加入jstl.jar。在要使用JSTL的页面引入核心库:<%@tagli
2021-12-22 23:15:00 508
原创 Java Web实战详细教程(二十三)JSTL标签和EL表达式精讲
为什么要使用JSTL和EL表达式?我们下面通过一个表格展示部门员工信息,对比看JSP和JSTL的不同。同样是循环生成一个table数据,使用传统jsp:同样是循环生成一个table数据,使用JSTL方式:EL全称是Expression Language,即表达式语言。使用宽松的类型转换,简化对变量和对象的访问。EL的语法结构为表达式,比如说{表达式} ,比如说表达式,比如说{emp.name}以上变量emp会遵循从page、request、session、application中依次寻找
2021-12-22 22:00:00 850
原创 Java Web实战详细教程(二十二)过滤器Filter
在上一篇文章中,我们通过Session实现了鉴权,具体而言是在登录成功之后,在session对象中存放登录成功的user对象,然后在需要控制权限的资源上,判断session作用域中是否包含该对象。代码如下:public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletE
2021-12-22 10:39:46 475
原创 Spark3.2教程(七)IDEA下Java开发Spark SQL
上一篇文章中,我们使用了Scala语言调用Spark SQL接口进行了开发,本篇文章我们使用Java语言进行同样业务功能的处理,依然是对JSON、Txt文本进行处理。 JSON和Txt文件内容如下所示:{"name":"Michael"}{"name":"Andy", "age":30}{"name":"Just
2021-12-21 22:15:00 1726
原创 Spark3.2教程(六)IDEA下Scala开发Spark SQL
Spark SQL是为了提供对结构化数据处理而推出的技术。 Spark自带的例子还是比较详尽而浅显易懂的。本次Spark SQL,我们通过研究Spark自带的教程demo来学习。Spark自带的demo在examples\src\main目录下,如下图所示,针对相同技术提供了不同语言的实现方式,总体而言还是S...
2021-12-21 11:04:13 1379
原创 Spark3.2教程(五)IDEA下Java开发Spark词频统计
上一篇文章中,使用了Scala开发了词频统计,本篇文章我们使用Java开发同样的词频统计,借以对比两门语言的不同。一、创建我们熟悉的Maven Java
2021-12-18 22:43:34 2067
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人