<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Just Do It]]></title><description><![CDATA[好学若饥 谦卑若愚 求知若渴 大智若愚]]></description><link>https://blog.csdn.net/whp1473</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; whp1473]]></copyright><item><title><![CDATA[Java单元测试实战]]></title><link>https://blog.csdn.net/whp1473/article/details/136527522</link><guid>https://blog.csdn.net/whp1473/article/details/136527522</guid><author>whp1473</author><pubDate>Thu, 07 Mar 2024 19:41:40 +0800</pubDate><description><![CDATA[在开发过程中，发现很多人并不理解什么是单元测试，所以专门写一章来讲解关于研发人员单元测试相关知识，同时讲一下如何进行代码覆盖率测试。我们通常可以将测试分为两大类，一种是集成测试，一种是单元测试。]]></description><category></category></item><item><title><![CDATA[Vue+Vue Router+TailwindCss+Daisyui+AntV部署]]></title><link>https://blog.csdn.net/whp1473/article/details/132190966</link><guid>https://blog.csdn.net/whp1473/article/details/132190966</guid><author>whp1473</author><pubDate>Wed, 09 Aug 2023 19:27:08 +0800</pubDate><description><![CDATA[开始使用 Tailwind 的实用程序类来设计您的内容。将Tailwind 每个层的指令添加到您的文件中。将 Tailwind 指令添加到您的 CSS 中。开始在您的项目中使用 Tailwind。三、安装Tailwindcss。在文件中添加所有模板文件的路径。二、设置IDEA JS版本。使用 运行您的构建过程。四、daisyUI安装。]]></description><category></category></item><item><title><![CDATA[编程资料汇总]]></title><link>https://blog.csdn.net/whp1473/article/details/129419485</link><guid>https://blog.csdn.net/whp1473/article/details/129419485</guid><author>whp1473</author><pubDate>Thu, 09 Mar 2023 11:30:27 +0800</pubDate><description><![CDATA[Hadoop、Hive、Spark、Storm、Flink、Hbase、Kafka、Zookeeper、Flume、Sqoop、Azkaban大数据资料汇总]]></description><category></category></item><item><title><![CDATA[Java并发—Join使用及原理]]></title><link>https://blog.csdn.net/whp1473/article/details/119302501</link><guid>https://blog.csdn.net/whp1473/article/details/119302501</guid><author>whp1473</author><pubDate>Sun, 01 Aug 2021 21:49:06 +0800</pubDate><description><![CDATA[一、理解

阅读JDK Join方法注释如下：



Waits for this thread to die.//等待该线程死亡



所以其作用是 等待该线程死亡。简单理解就是，调用该方法的线程阻塞，直到被调用Join的线程死亡。

我们回忆一下，线程的5种状态，如下：

NEW：新建
	RUNNABLE：运行中
	BLOCKED：阻塞。等待锁，通常是通过synchronize
	WAITING：等待。通常是调用Object.wait()，Thread.join()
	TIMED_WAITING：时..]]></description><category></category></item><item><title><![CDATA[每日一学设计模式-模板方法]]></title><link>https://blog.csdn.net/whp1473/article/details/118979458</link><guid>https://blog.csdn.net/whp1473/article/details/118979458</guid><author>whp1473</author><pubDate>Thu, 22 Jul 2021 02:10:23 +0800</pubDate><description><![CDATA[一、概念

在方法中定义算法的骨架，同时将一些步骤的实现推迟到子类。模板方法允许子类重新定义算法的某些步骤，而无需更改算法的结构。

二、解释

真实世界理解：

人的一生都要经过幼年、少年、老年(具体方法)，但每个人的一生又各不相同(抽象方法)，虽然青年时期都要工作，但你可以选择对工作的态度(钩子方法)。

模板方法中三类角色：

具体方法(Concrete Method)：算法骨架，不想被修改应使用final修饰
	抽象方法(Abstract Method)：子类必须重写的方法
	钩子方法(Hook M]]></description><category></category></item><item><title><![CDATA[Mybatis快速入门]]></title><link>https://blog.csdn.net/whp1473/article/details/118468811</link><guid>https://blog.csdn.net/whp1473/article/details/118468811</guid><author>whp1473</author><pubDate>Mon, 05 Jul 2021 00:09:16 +0800</pubDate><description><![CDATA[一、Mybatis快速

1.1 Mybatis是什么

MyBatis 是一款优秀的持久层框架，它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO（Plain Old Java Objects，普通老式 Java 对象）为数据库中的记录。

1.2为什么使用Mybatis

通俗的理解，一个接口映射一个数据库SQL。调用传参时，需要将Ja.]]></description><category></category></item><item><title><![CDATA[RESTful API设计]]></title><link>https://blog.csdn.net/whp1473/article/details/118410014</link><guid>https://blog.csdn.net/whp1473/article/details/118410014</guid><author>whp1473</author><pubDate>Fri, 02 Jul 2021 18:12:39 +0800</pubDate><description><![CDATA[一、RESTful API简介



1.1 RESTfulAPI是什么

RESTful API全称是Resource Representational State Transfer(资源表述性状态转移)。

R：Resource 资源。例如：user、role、gist、issue、service、route

E：Representational 表述性。数据的表现形式，例如：JSON、XML、CSV、IMG等

S：State 状态。资源的状态，例如：创建、更新等状态

T：Transfer 转移.]]></description><category></category></item><item><title><![CDATA[阿里p3c]]></title><link>https://blog.csdn.net/whp1473/article/details/115627025</link><guid>https://blog.csdn.net/whp1473/article/details/115627025</guid><author>whp1473</author><pubDate>Tue, 13 Apr 2021 21:08:00 +0800</pubDate><description><![CDATA[一、说明

阿里p3c含义是先进、检测、发现潜在问题的意思。

阿里p3c是代码规范检查插件，是根据《阿里巴巴Java开发手册》转化而成的自动化插件。



二、引言


]]></description><category></category></item><item><title><![CDATA[Maven—使用Archetype服务构建]]></title><link>https://blog.csdn.net/whp1473/article/details/114262614</link><guid>https://blog.csdn.net/whp1473/article/details/114262614</guid><author>whp1473</author><pubDate>Mon, 01 Mar 2021 14:46:56 +0800</pubDate><description><![CDATA[一、简介

二、创建Archetype骨架

三、使用Archetype骨架

四、小结
]]></description><category></category></item><item><title><![CDATA[汇编语言-实验7解答]]></title><link>https://blog.csdn.net/whp1473/article/details/113966498</link><guid>https://blog.csdn.net/whp1473/article/details/113966498</guid><author>whp1473</author><pubDate>Tue, 23 Feb 2021 01:44:39 +0800</pubDate><description><![CDATA[一、题目









二、分析

首先可以可以看到data中有三个数组，data中数组1起始固定值是0，数组2起始固定值是84(21*4计算得到)，数组3起始固定值是168(42*4计算得到)。分别可以表示为0[bp]、84[bp]、168[bx]。

table可以看做是一个包含结构体的数组，我们可以叫它数组4，其中年份是es:[si].0，长度为4字节；收入是[si].5，长度为4字节；雇员数是es:[si].10，长度为2字节；人均收入是es:[si].13，长度为2字节。

对于数组1、数组2]]></description><category></category></item><item><title><![CDATA[slog-spring-boot1.1.0文档—第一章 快速开始]]></title><link>https://blog.csdn.net/whp1473/article/details/108769695</link><guid>https://blog.csdn.net/whp1473/article/details/108769695</guid><author>whp1473</author><pubDate>Thu, 24 Sep 2020 11:06:51 +0800</pubDate><description><![CDATA[一、简介

起因

我们在日常的后端Java开发中，你是否碰到过以下这些场景：

(1)产品经理急匆匆过来，来帮我找下这个页面的XXX数据

(2)测试开发在测试环境，测试时，需要和后端频繁交流使用那些表，用来构造测试数据

(3)数据开发处理数据写入表中，页面访问与预期不符时，数据开发需要知道执行了那些SQL

(4)正式环境运行，接口发生SQL异常、访问缓慢，需要定位SQL

通常的做法是从前端页面获得接口地址，搜索接口地址对应后端项目的执行方法，找到对应Mybatis的Mapper.xml中SQL，如]]></description><category></category></item><item><title><![CDATA[slog-spring-boot1.1.0文档—第二章  开发者文档]]></title><link>https://blog.csdn.net/whp1473/article/details/108769639</link><guid>https://blog.csdn.net/whp1473/article/details/108769639</guid><author>whp1473</author><pubDate>Thu, 24 Sep 2020 11:05:33 +0800</pubDate><description><![CDATA[一、概述

场景示例



 图1.1 数据系统架构设计

系统主要分为4部分：

网站：提供给用户交互界面
	业务系统：用户服务、报表服务、财务服务，用于业务处理和查询
	数据服务：大数据定时任务加工处理平台，执行结果回写入数据库
	数据库：提供数据存储、检索，业务系统和数据系统的存储区
系统主要角色分为3个：

用户：系统使用者。不了解业务系统、数据服务
	数据开发：操作数据平台的开发人员。不了解业务系统、只熟悉SQL、HIVE...]]></description><category></category></item><item><title><![CDATA[maven-发布到中央仓库]]></title><link>https://blog.csdn.net/whp1473/article/details/105543439</link><guid>https://blog.csdn.net/whp1473/article/details/105543439</guid><author>whp1473</author><pubDate>Wed, 15 Apr 2020 20:14:45 +0800</pubDate><description><![CDATA[一、前言

一般在Java开发中都会使用maven从中央仓库、阿里镜像仓库中获得类库，这些类库都是由世界各地开发者或组织上传，那么如何将自己的开源作品上传至maven中央仓库呢？下面我来实现这个操作。

二、创建工单

2.1 注册maven

注册地址：https://issues.sonatype.org/secure/Signup!default.jspa



2.2 登录maven工单系...]]></description><category></category></item><item><title><![CDATA[stackoverflow 访问非常慢的解决办法]]></title><link>https://blog.csdn.net/whp1473/article/details/85055359</link><guid>https://blog.csdn.net/whp1473/article/details/85055359</guid><author>whp1473</author><pubDate>Mon, 17 Dec 2018 20:52:01 +0800</pubDate><description><![CDATA[一、概述

stackoverflow是开发常用的提问和解决代码问题网站，但自己访问总是非常的慢，几十秒甚至几分钟

网站：https://stackoverflow.com/

二、原因分析

我们可以对

2.1 被墙了

stackoverflow只是访问速度很慢，但终归可以打开，如果被墙不可能最后打开的，所以排除。

2.2 请求阻塞

我们都知道一个网站一般是由多个请求组成的，打开F12...]]></description><category></category></item><item><title><![CDATA[优秀的代码都是如何分层的]]></title><link>https://blog.csdn.net/whp1473/article/details/83860601</link><guid>https://blog.csdn.net/whp1473/article/details/83860601</guid><author>whp1473</author><pubDate>Thu, 08 Nov 2018 14:22:07 +0800</pubDate><description><![CDATA[1、背景

说起应用分层，大部分人都会认为这个不是很简单嘛 就controller，service, mapper三层。看起来简单，很多人其实并没有把他们职责划分开，在很多代码中,controller做的逻辑比service还多,service往往当成透传了，这其实是很多人开发代码都没有注意到的地方，反正功能也能用，至于放哪无所谓呗。这样往往造成后面代码无法复用，层级关系混乱，对后续代码的维护非常...]]></description><category></category></item><item><title><![CDATA[vue.js实现数据驱动视图原理]]></title><link>https://blog.csdn.net/whp1473/article/details/83182060</link><guid>https://blog.csdn.net/whp1473/article/details/83182060</guid><author>whp1473</author><pubDate>Fri, 19 Oct 2018 15:04:00 +0800</pubDate><description><![CDATA[vuejs实现数据驱动视图原理

什么是数据驱动

数据驱动是vuejs最大的特点。在vuejs中，所谓的数据驱动就是当数据发生变化的时候，用户界面发生相应的变化，开发者不需要手动的去修改dom。

比如说我们点击一个button，需要元素的文本进行是和否的切换。在jquery刀耕火种的年代中，对于页面的修改我们一般是这样的一个流程，我们对button绑定事件，然后获取文案对应的元素dom对象，然...]]></description><category></category></item><item><title><![CDATA[Quartz2.2.x官方文档2.2.X—第三章 10.配置，资源使用和SchedulerFactory]]></title><link>https://blog.csdn.net/whp1473/article/details/83096357</link><guid>https://blog.csdn.net/whp1473/article/details/83096357</guid><author>whp1473</author><pubDate>Tue, 16 Oct 2018 19:49:21 +0800</pubDate><description><![CDATA[Quartz 教程

Table of Contents | ‹ Lesson 9 | Lesson 11 ›

Lesson 10: 配置, 资源使用和SchedulerFactory

Quartz架构是模块化的，因此要运行需要几个组件组合起来。幸运的是，有一些帮手存在。

在Quartz能够工作之前有些重要的组件需要配置:

ThreadPool
	JobStore
	DataSources...]]></description><category></category></item><item><title><![CDATA[Quartz2.2.x官方文档2.2.X—第三章 9.Job存储]]></title><link>https://blog.csdn.net/whp1473/article/details/83096341</link><guid>https://blog.csdn.net/whp1473/article/details/83096341</guid><author>whp1473</author><pubDate>Tue, 16 Oct 2018 19:48:11 +0800</pubDate><description><![CDATA[Quartz 教程

Table of Contents | ‹ Lesson 8 | Lesson 10 ›

课程 9: Job 存储

JobStore的责任是保存和追踪你给予调度程序的所有&quot;工作数据&quot;: jobs, triggers, calendars, 等等. 为你的Quartz调度程序实例选择合适的JobStore是一个重要的步骤。幸运的是, 一旦你了解了它们的区别选择起来是很简单的...]]></description><category></category></item><item><title><![CDATA[Quartz2.2.x官方文档2.2.X—第三章 8.SchedulerLiseners]]></title><link>https://blog.csdn.net/whp1473/article/details/82988212</link><guid>https://blog.csdn.net/whp1473/article/details/82988212</guid><author>whp1473</author><pubDate>Tue, 09 Oct 2018 20:27:07 +0800</pubDate><description><![CDATA[Quartz教程

Table of Contents | ‹ Lesson 7 | Lesson 9 ›

Lesson 8: SchedulerListeners

SchedulerListeners 就像一开始的TriggerListeners和JobListeners，除非他们要接收到调度程序自身的事件通知-不一定要与特定的触发器或者任务相关联。

Scheduler-related事件...]]></description><category></category></item><item><title><![CDATA[Quartz2.2.x官方文档2.2.X—第三章 7.TriggerListeners和JobListeners]]></title><link>https://blog.csdn.net/whp1473/article/details/82988188</link><guid>https://blog.csdn.net/whp1473/article/details/82988188</guid><author>whp1473</author><pubDate>Tue, 09 Oct 2018 20:25:49 +0800</pubDate><description><![CDATA[Table of Contents | ‹Lesson 6 | Lesson 8›

课程 7: TriggerListeners 和 JobListeners

监听器是你创建的对象，基于调度程序的时间来执行相应的行为。你可能猜到了, TriggerListeners 接收与触发器相关的事件，JobListeners 接收与任务相关的事件。

Trigger-related事件包含: 事件触...]]></description><category></category></item></channel></rss>