<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[lewenson的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lewenson</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lewenson]]></copyright><item><title><![CDATA[java语言导学]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/125273595</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/125273595</guid><author>lewenson</author><pubDate>Tue, 14 Jun 2022 15:08:23 +0800</pubDate><description><![CDATA[本专栏，旨在带大家学习初级java知识，带大家能用java语言，编写一些初级的代码。在后续的专栏中，我会继续介绍一部分常用的框架、数据库以及前端知识。并结合这些知识，带着大家实战制作一个小的应用程序。...]]></description><category></category></item><item><title><![CDATA[spring-boot项目整合redis缓存]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/123820916</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/123820916</guid><author>lewenson</author><pubDate>Tue, 29 Mar 2022 14:43:53 +0800</pubDate><description><![CDATA[ps：后面还会为工程植入更多的组件，大家看完请帮忙三连~~谢谢大家，后续大家也可以将本工程保存为骨架工程使用。或者大家有什么想要看的组件集成也可以私信我，谢谢~~~ 

接上期，本期整合redis缓存。本期结束，基本项目中常用的组件也就这些。将工程拿去当做骨架工程开发点小东西也是很好用的。

集成redis相对比较简单，只要做两步就行了。redis的安装，可以百度一下。我本地装了个redis。

第一步，添加redis的依赖


&lt;!-- redis依赖 --&gt;
        &lt;depe]]></description><category></category></item><item><title><![CDATA[spring-boot项目整合swagger文档]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/123757428</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/123757428</guid><author>lewenson</author><pubDate>Sun, 27 Mar 2022 12:27:50 +0800</pubDate><description><![CDATA[tips：后面还会为工程植入更多的组件，大家看完请帮忙三连~~谢谢大家，后续大家也可以将本工程保存为骨架工程使用。或者大家有什么想要看的组件集成也可以私信我，谢谢~~~

swagger文档目前应用也是很广泛的，本期为大家介绍spring-boot项目整合swagger文档

本着学习的心态我们整合比较新的swagger3，在实际项目中遇到的还是以swagger2为主。本期工程还是接上期整合完mybatis的工程。

swagger文档的整合大致分为三步

1.添加swagger的依赖

2.在yml配置文]]></description><category></category></item><item><title><![CDATA[spring-boot项目整合mybatis]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/123698429</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/123698429</guid><author>lewenson</author><pubDate>Wed, 23 Mar 2022 22:50:00 +0800</pubDate><description><![CDATA[tips：后面还会为工程植入更多的组件，大家看完请帮忙三连~~谢谢大家，后续大家也可以将本工程保存为骨架工程使用。或者大家有什么想要看的组件集成也可以私信我，谢谢~~~

现在绝大多数的项目采用的是mysql数据库。

mysql在spring-boot项目中一般使用mybatis框架，下面介绍spring-boot项目如何整合mysql数据库和mybatis框架。

（spring-boot项目的创建，可以看上期介绍）

1.在spring-boot项目的pom.xml中加入mysql和mybais相关架]]></description><category></category></item><item><title><![CDATA[idea 创建 spring-boot 项目]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/123602414</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/123602414</guid><author>lewenson</author><pubDate>Sat, 19 Mar 2022 21:00:00 +0800</pubDate><description><![CDATA[sring-boot项目创建。

spring-boot项目，旨在简化spring的配置，方便spring项目中的相关框架植入。

下面了解下，如何用idea创建spring-boot项目

1.创建项目



2.选择spring initializr点击下一步



3.填写组名，包名。选择JDK版本。点击下一步



4.选择需要导入的spring相关依赖。但是依赖加多了，容易出问题，所以一般只选择一个spring-web的依赖。后续依赖在pom中额外添加



4.点击finish，进入项目。无..]]></description><category></category></item><item><title><![CDATA[多线程process和多线程writer]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120433409</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120433409</guid><author>lewenson</author><pubDate>Thu, 23 Sep 2021 14:10:25 +0800</pubDate><description><![CDATA[本次介绍AsyncItermProcessor和AsyncItemWriter

在很多场景中，process要处理大量的计算对比工作，计算对比可能还涉及大量的数据库读写工作。要是能将process单独多线程处理，那将会将性能提升很大一截，甚至是指数级的提升。

spring-batch提供了相应的处理方案。使用AsyncItermProcessor和AsyncItemWriter，一般需要组合使用，才能有效提升效率。

process代码


@StepScope
    @Bean("userProce]]></description><category></category></item><item><title><![CDATA[spring-batch多步骤并行处理]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120370607</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120370607</guid><author>lewenson</author><pubDate>Sat, 18 Sep 2021 16:59:28 +0800</pubDate><description><![CDATA[真实业务场景下，一个JOB可能同时处理多个任务。在步骤互不干涉的情况下，可以设置多步骤并行处理。提高运行效率。

上代码


package com.flight.neon.batch.demo.job;

import com.flight.neon.batch.demo.job.entity.User;
import com.flight.neon.batch.demo.job.listener.DemoJobListener;
import com.flight.neon.batch.demo.job]]></description><category></category></item><item><title><![CDATA[spring-batch多线程开启]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120225093</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120225093</guid><author>lewenson</author><pubDate>Fri, 10 Sep 2021 16:35:56 +0800</pubDate><description><![CDATA[通过之前的介绍，大姐对spring-batch有了一定的了解。但是当数据量达到十万级时，我们发现之前的JOB运行时间还是比较长的。

spring-batch优化效率可以直接在step中打开spring的多线程，进行多线程运行。当打开多线程之后，十万级的数据运行可以在秒级运行完毕。

打开多线程分两步，1.关闭读取中的状态记录2.开启spring的多线程    代码如下


@Bean("userReader")
    public FlatFileItemReader&lt;Us...]]></description><category></category></item><item><title><![CDATA[spring-batch重试机制]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120224602</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120224602</guid><author>lewenson</author><pubDate>Fri, 10 Sep 2021 16:26:41 +0800</pubDate><description><![CDATA[spring-batch提供了批处理的异常重试机制，主要有两种。重试和跳过。

1.重试（retry）

在step中可以设置，本step运行的重试机制。主要包括：重试的异常，忽略的异常，重试的次数以及重试的监听




    @StepScope
    @Bean
    public Step userStep() {
        return stepBuilderFactory.get("userStep")
                .&lt;User,User&gt;chunk(2]]></description><category></category></item><item><title><![CDATA[spring-batch参数传递]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120179510</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120179510</guid><author>lewenson</author><pubDate>Wed, 08 Sep 2021 15:26:44 +0800</pubDate><description><![CDATA[1.JobParameters

在调用JOB的时候设置JOB的全局参数，可在JOB执行过程的各个地方获取。

如下代码所示，在调用JOB是设置JobParameters


package com.flight.neon.batch.demo.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.batch.core.Job;
import org.springframework.]]></description><category></category></item><item><title><![CDATA[spring-batch组合写]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120152330</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120152330</guid><author>lewenson</author><pubDate>Tue, 07 Sep 2021 10:14:26 +0800</pubDate><description><![CDATA[真实业务场景下回出现，读取一条数据，写入多个目标的场景

回顾一下之前单个写的DEMO


package com.flight.neon.batch.demo.job.writer;

import com.flight.neon.batch.demo.job.entity.User;
import org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider;
import org.springfra]]></description><category></category></item><item><title><![CDATA[spring-batch改写平面文件读取器]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120137394</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120137394</guid><author>lewenson</author><pubDate>Mon, 06 Sep 2021 16:00:10 +0800</pubDate><description><![CDATA[在实际的业务场景中，数据文件并不一定是标准格式，可能是一些自定义格式的数据文件，这些文件的读取就需要改写读取器来实现。

首先回顾下上期DEMO中的文件读取器


package com.flight.neon.batch.demo.job.reder;

import com.flight.neon.batch.demo.job.entity.User;
import org.springframework.batch.item.file.FlatFileItemReader;
import org.sp]]></description><category></category></item><item><title><![CDATA[mysql在A表不在B表数据查询sql]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120136681</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120136681</guid><author>lewenson</author><pubDate>Mon, 06 Sep 2021 15:43:03 +0800</pubDate><description><![CDATA[mysql中在A表不在B表数据查询

基本在网上搜索出的sql有三种

1.select distinct A.ID from A where A.ID not in (select ID from B)

2.select A.ID from A left join B on A.ID=B.ID where B.ID is null

3.select * from B where (select count(1) as num from A where A.ID = B.ID) = 0

查询少量数据.]]></description><category></category></item><item><title><![CDATA[spring-batch批处理框架介绍及demo]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/120082620</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/120082620</guid><author>lewenson</author><pubDate>Fri, 03 Sep 2021 17:07:49 +0800</pubDate><description><![CDATA[最近在项目中，有批处理的相关需求。最终选定技术框架为spring-batch批处理框架，在此专栏中为大家分享spring-batch的基础知识与项目遇到的一些实际问题的解决方案。
]]></description><category></category></item><item><title><![CDATA[ibatis中sql xml的基础写法]]></title><link>https://blog.youkuaiyun.com/lewenson/article/details/108991787</link><guid>https://blog.youkuaiyun.com/lewenson/article/details/108991787</guid><author>lewenson</author><pubDate>Sat, 10 Oct 2020 11:27:17 +0800</pubDate><description><![CDATA[ibatis中sqlxml的基础写法
在工作中整理的ibatis sql配置文件的一些基础写法。
ibatis sql xml文件基本构成
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd"&gt;
&lt;sqlMap namespace="USER"&gt;]]></description><category></category></item></channel></rss>