自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

carson0408的博客

点点滴滴积累,便于日后温故知新;同时欢迎大家指正!

  • 博客(229)
  • 资源 (4)
  • 收藏
  • 关注

原创 领域驱动设计vs面向数据库编程

对于现在的大多数场景下,面向数据库编程对于实现功能来说是十分方便的,门槛比较低。主要三把斧,建表,orm框架生成dao方法,然后service层对dao进行复杂操作。最后可以封装接口提供给下游服务使用。但是对于一个复杂的场景来说,对于每张表进行各自的增删改查,这样的模型是松散的。注意点:1.一对多和一对一都需要在被维护端的实例中建立与维护端的相互关系 2.注意@Id注释不要引错包,org.springframework.data.annotation.Id;会带来实体...

2021-05-16 15:32:03 711

原创 Java Stream API

jdk1.8中新特性java Stream Api的呈现是java函数式编程引入之后的魔法糖之一。Stram API主要对流进行函数操作,使你的代码更简洁易读,更灵活,性能更好。我们通过以下几方面介绍Stream Api如何让我们的代码更加丝滑。1.创建流 流的创建直接使用Stream类的方法进行创建。1.1.创建空流Stream<Integer> emptyStream = Stream.empty();1.2.根据数组和集合创建流//...

2021-04-11 18:10:40 320

原创 聊聊CompletableFuture

自从java8引入了Stream、函数式编程、CompletableFuture等特性之后,给我们码代码提供了不少酷炫的操作。从JDK1.5开始我们就可以通过Future接口实现异步,主要是创建一个线程池,然后提交Runnable或者Callable的任务。然后可以用get来获取返回结果(执行完毕才会返回),传统回调最大的问题就是不能将控制流分离到不同的事件处理器中。而CompletableFuture弥补了缺陷。本文主要讲CompletableFuture相关的特性。 根据下面这行...

2021-03-28 21:56:27 261

原创 聊聊Spring之BeanDefinitionRegistryPostProcessor

spring中我们常用注解配置以及xml文件来管理我们的bean。其实在spring的生命周期中,bean在实例化之前都是无差别的被当做资源加载进来的,并被封装成一个个Beandefinition

2020-12-31 18:25:18 1231

原创 自定义注解+AOP

在我们日常编程过程中,会用到许多注解,比如@Component、@Bean等注解,这些注解有什么好处呢?最明显的便是简洁代码,省略很多不必要的代码,同时注解也可以实现多样化。一般自定义注解步骤主要是,定义注解类-->注解类使用-->解析注解,在运行时或编译期发现标记进行特殊处理。这样对于整个项目或者多个项目中可以使用自定义注解标记,完成自己需要的特定操作,避免了每个使用处都有大篇幅的解析代码。本文主要讲解自定义注解结合AOP的应用,其中可以利用AOP编程识别注解标记进行处理。 ...

2020-08-29 22:38:33 2155

原创 Kafka学习笔记

1.Kafka概念 1.1基本概念 Kafka是一个高吞吐量、分布式的发布—订阅消息系统;是一款开源的、轻量级的、分布式、可分区和具有复制备份的、基于Zookeeper协调管理的分布式流平台的功能强大的消息系统。以下是kafka中常见的概念。1.消息:是kafka的基本单位,由一个固定长度的消息头和一个可变长度的消息体构成。2.消费者:消息的消费方3.生产者:消息的产生方4.topic:消息主题,用于区分消息类型。一个topic代表一类消息5.消费组:消费同一类...

2020-06-07 21:25:20 419

原创 SpringBoot整合redis缓存使用

一开始写增删改查基本都是直接对库操作,接口调用量少的时候,性能问题几乎不存在,但是数据量级上升之后,这些增删改查接口的压力也会大大上升,甚至会出现慢查询的情况,出现较大的延迟。这时候机智的小伙伴会使用索引,没错,索引可以解决一部分查询造成的性能问题。那么如何才能进一步提升查询的性能呢?对于读多写少的表可以使用缓存,那么将大大减少读取数据库的次数。缓存常见的问题1...

2020-03-05 00:05:33 13877 1

原创 JMeter工具及其常用tips

1.JMeter如何测试一个http接口2.批量参数测试get请求3.批量参数测试post请求4.断言

2019-11-11 00:40:39 253

原创 springboot整合ActiveMQ

目前随着微服务以及分布式的发展,消息中间件的作用越来越大了。消息中间件可以起到系统之间解耦的作用,比如用户进行购买商品,有加入购物车操作,还有下单操作以及支付操作等。在微服务的情况下,这些将是不同的服务,有可能部署在不同的容器中,因此,这个购买操作存在各个系统之间的调用关系。其中支付之后会有支付信息,以及物流等信息反馈给用户。但是如果在一个串行调用的系统中则是非常不合理的。对于用户...

2019-11-10 01:22:02 460 2

原创 ubuntu常见问题集锦

1.ubuntu18.04安装软件出现Could not get lock /var/lib/dpkg/lock使用如下命令解决:(1).sudo rm /var/lib/apt/lists/lock(2).sudo rm /var/cache/apt/archives/lock(3).sudo apt-get update...

2019-10-25 08:36:32 191

原创 springcloud之服务的负载均衡----Ribbon实现客户端负载均衡

在微服务架构中,为了解决单点故障以及高并发的情况,会引入负载均衡机制,以提升服务整体的可用性。一般负载均衡分为服务端负载均衡和客户端负载均衡。其中,springcloud生态中通过Ribbon组件来实现客户端负载均衡。1.负载均衡策略1.RandomRule(随机策略)2.RoundRobinRule(轮询策略)3.RetryRule(重试策略)4.BestAv...

2019-09-28 20:23:24 299

原创 springcloud之网关(zuul)

微服务架构下,会存在多个服务交叉,那么对于外界用户来说如果需要访问,如果只能访问各个服务的url的话,那么会十分不友好,同时对于服务本身来说,安全性不高。因此,springcloud引入了网关的概念,统一了服务对外的地址,简化了服务与用户之间的互动。本文将沿用之前的学生与老师两个微服务,来讲解网关zuul组件给微服务架构带来的好处。 如果在没有使用网关的时候,用户...

2019-09-28 19:03:19 278

原创 springcloud之Hystrix---微服务的容错处理

服务之间的调用,如果出现网络抖动、服务提供者宕机、连接超时等情况,就会造成服务消费者的请求出现错误,同时造成外界对服务消费者访问的报错,会出现一连串的反应。这种情况就需要一种容错处理机制,从而提升服务的可用性。比如,双十一的时候,天猫、淘宝等网站的并发量大的惊人,对于各个服务来说负载都非常大,尤其对于基础服务来说,因此,这些商城在促销时会选择性地给一些服务容错的空间,从而保证另一些...

2019-09-22 22:31:57 274 1

原创 springcloud之Feign

由前面springcloud的例子可以实现服务发现与服务注册,但是对于服务消费者来说,调用远程服务则需要通过RestTmplate解析URL从而获取相应的服务。这种方式针对参数较多的情况下代码冗余度过高,不易于维护。因此,本文主要讲解springcloud中用于解决这种问题的组件--Feign。1.Feign的工作原理 Feign主要将远程服务通过代理的形式与...

2019-09-22 15:35:27 1102

原创 springcloud之服务注册与发现---Eureka组件

传统的调用一个服务,一般将ip地址等信息都配置到服务消费方,那么当远程服务ip发生变化时,则会需要重新更新服务消费方,不易于维护。而微服务则将服务消费方与服务提供方的ip等信息解耦,利用服务发现与服务注册机制来使微服务网络地址发生变更时,会重新注册到服务发现组件,就无须人工更改服务提供方的ip信息了。springcloud中常用的服务发现组件用的是Eureka。Eureka包含两个...

2019-09-07 00:35:52 265

原创 spring-cloud之服务提供者和服务消费者

springcloud是当前比较成熟的微服务的完整方案,所谓微服务就是基于SOA基础之上,将服务进一步拆分,使得粒度更细化。比如原有的服务可能包含多个功能模块,而微服务则是每个服务代表一个功能。由于粒度细化,那么会涉及到服务之间的相互调用,那么就涉及到服务提供者和服务消费者。所谓服务提供者就是表示该服务提供给其他服务调用,服务消费者则是调用其他服务的服务,每个服务既可以是服务提供者...

2019-09-01 23:29:14 1114

原创 使用prometheus和grafana监控springboot项目

最近在工作中,除了需要做开发的业务,还需要对一些业务指标在代码中进行埋点监控,因此梳理了prometheus进行指标埋点,通过grafana进行数据展示。本文主要通过简单的一个springboot项目,通过暴露一个http rest的接口,并对接口处通过prometheus埋下监控点,并将点的数据保存在prometheus的时序数据库中,然后grafana通过获取数据源,然后进行图...

2019-08-16 00:51:03 3800

原创 mybatis逆向工程

由于现在互联网蓬勃发展,为了求快,持久层使用的框架已经从Hibernate转化为mybatis,不过笔者从使用两者之后的感觉明显就是Hibernate高大上,但是学习起来门槛比较高;而mybatis则学起来难度较低,而且在开发过程中使用mybatis可以提升开发效率。现在笔者也从Hibernate往mybatis转移,但是后续还是会离不开Hibernate,尤其是业务开始使用spr...

2019-08-04 22:59:14 256

原创 Scrapy爬取网页信息并存储到MySQL

Scrapy项目之自动爬取网页信息一文介绍了利用Scrapy框架可以方便地进行网页信息的自动爬取。本文则是基于前文内容,将前文所述爬取的信息存储到MySQL中,使网页信息结构化。1.创建爬虫项目crawltosql2.编写items.pyimport scrapyclass CrawltosqlItem(scrapy.Item): # define ...

2019-05-30 17:48:06 992 1

原创 Scrapy项目之自动爬取网页信息

前文已经介绍了利用Scrapy框架与手写爬虫,比较了Scrapy框架的优势。前面介绍的scrapy框架爬取是针对一个网页的爬取,而本文介绍的是实现多个网页的自动爬取,本文将以爬取虎扑湿乎乎论坛帖子信息为例,讲解自动爬取网页信息的爬虫。1.分析页面 打开https://bbs.hupu.com/vote页面,该页面就是开始爬虫页面,点击进去,页面如下图所示:...

2019-05-11 20:32:31 4963 1

原创 Scrapy爬虫项目中避免被禁止爬虫的几种方法

现在网站的安全性越来越高,并会通过分析用户的行为以及相关信息来判断该用户是否是自动爬虫并会将爬虫行为禁止。不同的网站判断依据也不同,有的根据ip、有的根据用户信息、有的根据访问频率等。因此,本文将具有针对性地介绍几种方法应对不同的情况。1.禁止Cookie 有的网站会通过用户的Cookie信息堆用户进行识别和分析,如果将本地的Cookie信息让对方网站无法识别...

2019-05-10 22:35:17 2182

原创 Scrapy框架的了解与使用

Scrapy框架是比较常用且成熟的python爬虫框架,可以高效率地爬取web页面并提取出我们关注的结构化数据。前面介绍了手写爬虫的例子,但是每个爬虫都这么写,效率不高,同时造成代码的冗余。而使用爬虫框架可以使代码更加简洁,大大提升效率。本文主要了解一下Scrapy整体的架构、工作流程、常用命令以及创建Scrapy项目。1.Scrapy架构 如上图所示,s...

2019-05-10 20:20:20 695

原创 爬虫常见错误及解决方法

在爬虫或者安装框架过程中,会碰到一些报错或者问题,本文主要对这些问题进行收集整理。1.ERROR: No matching distribution found for win32api解决方法:折是缺少win32api模块,这里需要安装pypiwin32库,安装命令:pip install pypiwin322.pycharm安装库时出现AttributeErr...

2019-05-10 09:29:40 4758

原创 爬虫入门实践之多线程爬虫

有的爬重只需要单线程就可以完成,而有的爬虫可以拆分成多线程实现,能够提高爬虫效率。比如爬虫入门实践之爬取虎扑论坛帖子一文中,介绍使用的是用单线程实现的,首先在首页找出所有的url,然后遍历url,找出相关信息。其实,仔细分析,可以发现,该例子可以使用多线程来实现,比如一个线程用于获取url,一个线程根据已有的url来爬取相关信息,这样一来,总的等待时间更短了。因此,本文针对改写该例...

2019-05-07 22:30:18 2199

原创 爬虫入门实践之爬取虎扑论坛帖子

现在网络以及移动互联网发展迅速,大家花费越来越多的时间逛一些网站浏览帖子,比如贴吧、论坛等。博主喜欢打篮球,爱看NBA,因此常常行迹于虎扑论坛,看一些精彩赛事以及比较好的帖子。本文主要通过对虎扑某一版的帖子进行统一收集,并总结这些帖子的相关信息。1.选择需要操作的版块 本文主要针对NBA版块进行信息的批量收集,https://bbs.hupu.com/all...

2019-05-06 21:09:49 5035

原创 爬虫入门实践之图片爬虫

现在电商平台网站是大家访问最多的网站之一,比如看重一个商品,想到电商网站下载相应的大量图片,如果采用一张张下载则会耗费很多时间。这里可以通过爬虫程序对该商品的图片进行自动下载。本文以在京东上搜索面霜为例子进行讲解。1.了解待爬虫网页 https://list.jd.com/list.html?cat=1316,1381,1391点开该网址,即可进入面霜页面,里...

2019-05-06 11:02:52 4106

原创 正则表达式及Python中常见的相关函数

在日常生活中,如果批量进行筛选或者操作某特定格式的信息,一个个进行操作工作效率会特别低,但使用正则表达式则可以大大提升工作效率。正则表达式就是描述字符串排列的一套规则,而这个规则是根据实际需求进行定义的。1.正则表达式相关知识1.常见打印字符与通用字符 符号 含义 ...

2019-05-05 20:16:39 293

原创 爬虫入门实践之使用Urllib爬取网页

在这个信息爆炸的时代,数据筛选和大数据分析是很重要的过程,而这一过程需要数据源,爬虫则可以获取大量数据源。本文则主要对爬取网页的过程做一个详细的介绍,有助于对爬虫知识的入门。1.使用Urllib爬取网页 Urllib库是Python中用于操作URL、爬虫且具有强大功能的库。该库在Python2.x和Python3.x有一定的区别,本文使用的是Python2.x...

2019-05-04 22:20:30 2321

原创 利用docker制作Java程序镜像

Docker的使用可以将应用程序做成镜像,这样可以将镜像发布到私有或者公有仓库中,在其他主机上也可以pull镜像,并且运行容器,运行程序。本文主要简单介绍一下如何通过Docker将Java程序创建成一个镜像。1.建立工作目录cd java_demo2.编写程序 由于简单演示,主要写一个Main.java的程序,代码如下:import jav...

2019-04-04 14:53:16 3181

原创 Ubuntu中利用Docker建立一个私有仓库(可以供远程访问)

目录1.服务器建立仓库2.客户端访问 本文主要通过在建立本地仓库的基础上建立一个可供远程访问的私有仓库。笔者将按照自己建立的过程进行讲述,并且将在这过程中遇到的问题以及解决方法一并进行讲解。 笔者的思路是在一台Ubuntu系统下的电脑当作服务器建立仓库,然后后面建立成功之后在另一台win10系统的电脑上进行访问以及上传下载测试。1....

2019-04-02 18:43:41 990 1

原创 利用Docker创建私有仓库及实现批量上传文件

目录1.私有仓库创建2.使用私有仓库上传镜像1.批量上传指定镜像2.上传本地所有镜像3.Tips Docker本地上传下载镜像一般可以通过公有仓库实现。但是如果想要将镜像不公开仅供一部分人使用,则可以建立私有仓库。1.私有仓库创建a.下载私有仓库镜像sudo docker pull registry:latest查看本地镜像:su...

2019-04-02 14:17:25 1379

原创 Ubuntu之apt-get update问题

笔者在使用使用apt-get update更新软件源的时候,出现了如下错误,这是由于etc/apt/sources.list提供的源没有提供公钥,所以更新软件源失败,因此笔者结合自己的一些使用经验以及网上的经验分享,尝试了生成公钥的方法,但是还会报出其它错误。因此,笔者决定直接删除所有,从零开始,即清空一切源,重新更新。1.取消源将下图勾选的源都去掉2.清空et...

2019-04-02 10:41:25 5202 3

原创 利用Dockerfile创建Nginx镜像

Nginx是一个功能比较强大并且性能较高的web和反向代理服务器,与Apache作为web服务器相比,Ngnix使用更少的资源,支持更多的并发连接,体现更高的效率,一个Nginx实例能够轻松支持高达50000个高并发连接数的响应。本文主要通过Dockerfile在Ubuntu环境下创建Ngnix镜像。首先本文使用的基础镜像是Apache服务镜像的创建一文中选择的基础镜像sshd:u...

2019-03-30 20:28:44 806

原创 Apache服务镜像的创建

Docker中创建支持SSH服务的镜像一文中讲述了如何利用Dockerfile创建镜像,通过该文的步骤,创建了sshd:dockerfile的镜像,如下图所示,本文所要创建的Apache服务的镜像,则是以sshd:ubuntu14镜像为基础镜像的。但是值得注意的是,如果按照上文以ubuntu18.04创造镜像后续则会报错,而使用ubuntu14.04为基础镜像则可以解决包依赖不兼容...

2019-03-30 16:10:17 449

原创 Docker中创建支持SSH服务的镜像

一般的,docker的很多镜像是不带SSH服务的,所以如果需要远程管理的话,就需要将镜像创建成一个带有SSH服务的镜像。常见的创建镜像的方法有两种:通过commit命令创建和利用Dockerfile文件创建。以下通过创建一个带有SSH服务的ubuntu:18.04来讲述这两种方法。1.基于commit命令创建(windows系统下实现)1.使用ubuntu,即进入ubunt...

2019-03-29 13:34:00 1579

原创 Ubuntu下利用Dockerfile创建镜像

1.熟悉Dockerfile 一般,Dockerfile分为四个部分:基本镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。其中基本镜像信息必须放在第一行。 常见指令:1.FROM <image> :必须为第一条指令,同一个Dockerfile中可以使用多个From指令,代表多个基本镜像。2.MAINTAINER <name&gt...

2019-03-28 16:49:02 9339

原创 制作启动盘安装Ubuntu 18.04.1

1.使用UltraISO制作启动盘 首先,下载Ubuntu镜像文件。 链接:https://pan.baidu.com/s/1saIJuLzAR5ojc7_F3EQ--Q 提取码:1hc1 打开UItralISO,点击文件-->打开,选择下载的镜像文件,加载后如下图所示: 点击启动-->写入硬盘映像 安装Windows系统...

2019-03-25 17:22:58 4375

原创 不同开源日志框架的讨论与学习

日志包含程序运行时的逻辑信息、错误信息、事件描述信息、关键数据等,因此,可以通过这些信息帮助开发人员快速地发现和定位问题。因此,日志系统的学习和使用是提高开发效率的一种手段之一。1.JDK Logger 优点:不需要集成任何类库,只要有JVM的运行环境,就可以直接使用,使用起来比较方便。 缺点:JDK自带的,耦合性比较高,扩展性较差。...

2019-03-21 21:27:53 290

原创 IDEA中SpringMVC的简单开发---基于Java配置(无配置)

        Eclispe中SpringMVC的简单开发---Annotation、Eclipse中SpringMVC的简单开发---XML配置两篇博文已经交代了SpringMVC的开发流程,这两种分别使用注解以及xnl文件来进行对控制层进行配置。但是无论哪种文件,还是需要进行xml文件的配置,比如web.xml和SpringMVC配置文件。但是随着servlet的发展,现在支持无web.xm...

2019-01-15 10:51:34 732

原创 Spring之多线程

        开发中多线程与并发编程是必不可少的,而Spring中也有相应的工具类来实现这一功能,使用ThreadPoolTaskExecutor可实现一个基于线程池的TaskExecutor。联系实际,一般开发中常用异步任务,因此需要在Spring中实现异步任务主要有两步:1.在配置类中通过@EnableAsync开启对异步任务的支持。2.在实际执行的Bean的方法中使用@Async注...

2019-01-12 10:41:41 372

hadoop for windows

该压缩文件中有hadoop-2.7.6安装包,然后还有一个windows下运行的两个文件。主要用于windows下hadoop的配置

2018-12-20

mybatis关联查询多对多查询案例

该文件夹中包含mybatis多对多查询的具体案例,该文件夹中包含创建的数据库资料以及程序源代码,需要具体讲解请见博客:http://mp.blog.csdn.net/postedit/79247707

2018-02-03

mybatis关联查询案例

该资源主要通过举例讲述mybatis中的一对一关联查询,并用两种不同的方法进行操作。

2018-02-02

Spring整合Hibernate示例完整代码

Spring整合Hibernate示例完整代码,里面概括了各种配置的细节。

2018-01-17

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除