自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

u010502101的博客

成长中的菜鸟程序员

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

原创 作业流(flow)之间可以串行和并行进行处理

一个作业可以分为若干个流(flow),如果流之间的处理是有先后顺序的,可以顺序的执行每一个流,如果流之间互不影响,可以进行并行处理。一、顺序执行 顺序执行该图中job1中的step和flow的配置程序如下:/*@EnableBatchProcessing注解也可以加在spring boot的启动类上*/@EnableBatchProcessing@Configurationpublic cl

2018-03-01 15:53:09 4862 4

原创 作业流——flow

不同的job之间有时都需要相同的几个step,并且调用step之间的顺序也是相同的,此时可以把这几个step组成一个flow会方便调用。一个job可以由flow和step共同组成。flow流和flow流或者和tep步骤之间是可以进行跳转的,具体方法同上一章节作业步骤跳转相同,next()、from()、on()、to()同样适用。下面看一下,step、flow和决策者之间的相互跳转首先定义一个决策者

2018-03-01 10:16:47 1545

原创 作业步骤——step

一个job作业有时可以包括多个step步骤,但每个步骤之间的执行是有顺序的。步骤之间的跳转主要包括如下四种形式。next跳转on() … to()条件跳转from() … on() … to()条件跳转决策者跳转一、next跳转由next()方法指定下一个要跳转执行的step/*@EnableBatchProcessing注解也可以加在spring boot的启动...

2018-02-27 19:53:07 1155

原创 批处理的执行状态 -> RepeatStatus

每一个job都有一个或多个step,每个step都有执行状态,标识step的批处理是都完成。 在Spring batch框架中已经内置了一个RepeatStatus枚举类,定义了执行step的几个状态。1、FINISHED终止状态 如果一个step执行状态为FINISHED状态,表示该step执行完毕。看下面示例,一个job分两步执行,step1和step2。@Configurat...

2018-02-26 15:09:37 4365 2

原创 Spring batch 之 Hello World

新建一个Spring boot工程,项目管理工具为maven。1、下面新建一个Batch的配置类package com.lzj.spring.batch;import org.springframework.batch.core.Job;import org.springframework.batch.core.Step;import org.springframework.batch.core

2018-02-26 11:01:47 343 2

原创 根据http://start.spring.io/生成项目工程

对于需要spring的工程,可以在http://start.spring.io/网站生成需要的工程,然后导入eclipse中。 步骤如下: 一、从http://start.spring.io/生成项目工程 1、框1中选中管理工具,目前选用的是用的比较多的maven来管理项目; 2、框2中选择项目的开发语言; 3、框3选中spring boot的版本; 4、框4中项目的唯一标识; 5、选

2018-02-26 10:38:04 7102

原创 (五)整合spring与cxf的拦截器

把客户端的请求、拦截器和服务器端的响应、拦截器配置在spring的容器中,当有客户端发出请求时,自动执行拦截器和服务器的响应。 下面演示示例:客户端发出请求时,客户端的出拦截器在把用户名和密码加在请求头中;服务器端入拦截器解析请求头中是否有指定的用户名和密码,如果有执行服务器响应。一、服务器开发1、建立一个动态工程webservice-cxf-spring-interceptor-s...

2018-02-24 23:08:38 896

原创 (四)整合spring与cxf的webservice开发

下面以客户端通过id查询服务器端的User为例。<一服务器端开发>1、建立一个动态工程webservice-cxf-spring-server,并把cxf框架下lib目录中的jar包导入到/webservice-cxf-spring-server/WebContent/WEB-INF/lib中, 配置web.xml<?xml version="1.0" encoding="UTF-8"?><we

2018-02-23 23:11:38 327

原创 (三)cxf的拦截器使用

在webservice的客户端和服务端的请求和响应的过程中,能动态的操作请求和响应的数据,能够拦截请求和响应的数据并进行响应的操作,设计了cxf的拦截器,注意JDK中支持webservice,但不支持拦截器,所以开发强大的webservice通信,推荐cxf框架。拦截器分类: 1. 按所处的位置分:服务器端拦截器,客户端拦截器 2. 按消息的方向分:入拦截器,出拦截器 3. 按定义者分:

2018-02-23 14:51:09 1290

原创 (二)使用cxf框架开发webservice

一、 服务器端开发1. 创建服务器工程,导入cxf的jar包 首先建立一个server的工程,在工程目录下新建一个lib目录,把apache-cxf框架下lib包下的jar包拷到server工程目录下的lib目录下,并导入到工程的环境中。2. 新建服务器端响应接口package com.lzj.webservice.ws;import javax.jws.WebMe...

2018-02-23 14:32:43 213

原创 (一)使用JDK开发webservice

示例:假设客户端发送姓名,服务器端返回姓名的问候语一、 服务器端开发1. 首先定义服务器端方法的接口package com.lzj.webservice.ws;import javax.jws.WebMethod;import javax.jws.WebService;@WebServicepublic interface Webservice { @WebMethod

2018-02-23 13:51:48 242

原创 Stream应用(四)——终止操作:查找与匹配

四、终止操作:查找与匹配终端操作会从通道流的流水线生成结果。其结果可以是任何不是流的值,例如int、List、void等。如果流操作后返回的值还是Stream流类型的,则是开始操作和中间操作。 有以下经常用到的查找与匹配操作: allMatch——检查是否匹配所有元素 anyMatch——检查是否至少匹配一个元素 noneMatch——检...

2018-02-23 13:47:04 1178

原创 Stream应用(三)——排序

三、Stream的排序Stream通道流支持两种排除方式:sorted()自然排序;sorted(Comparator comp)。 sorted()自然排序 :产生一个新流,流中每个序列按自然排序的方式进行排序。 sorted(Comparator comp) :产生一个新流,流中的每个序列按自定义的比较器排序进行排序。1、 sorted()自然排序 @Test publi

2018-02-23 13:43:24 11510

原创 后端实现分页功能

前端查询一个列表时,后台可能会返回很多条记录,前端的一页可能空间有限,需要分多次页面进行展示。一种方式就是:在前端发给后台的接口指定查询起始笔数和要查询的记录条数,每次翻页的时候都重新发给后台要查询的起始笔数和记录条数。 例如一个表User,字段分别为:NAME、AGE、SEX数据库查询语句为:select NAME, AGE, SEX from(select row_number...

2018-02-13 19:02:32 6521 1

原创 Stream应用(二)——映射

接上一篇三、映射Stream中包含5个映射方法:map、mapToDouble、mapToInt、mapToLong和flatMap。用的最多的就是map和flatMap。 1、map映射 map方法接收一个函数作为函数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 1、下面实例,把每个字符串转换成大写字母,把所有的序列组成一个流 @Test public void t

2018-02-13 18:43:47 1038

原创 Timer和TimerTask定时器使用

Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。 TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。具体的任务在TimerTask中run接口中实现。 通过Timer中的schedule方法启动定时任务。一、运行定时器启动一个定时器实质是启动一个线程 1、在指定日期运行定时器任务,只运行一次 ...

2018-02-12 18:54:43 16439 5

原创 Stream应用(一)——筛选与切片

一、Stream简介Stream是一个数据流通道,用来操作集合、数组、数据源中的序列,并生成新的集合序列,在数据流通道中会对原来的集合、数组、数据源中的序列进行计算,计算的结果会生成一个新的序列,放在一个新的源中。 运用Stream操作分三步:创建Stream流、流中间操作、终止流操作注意: 1. Stream本省不会存储元素; 2. Stream不会改变原来源对象,相反,会返回一个持

2018-02-12 14:23:34 3609 1

原创 Lambda使用(三)->方法引用与构造器引用

Lambda的方法引用若 Lambda 体中的功能,已经有相应的方法提供了实现,可以在Lambda体中引用该方法。(可以将方法引用理解为 Lambda 表达式的另外一种表现形式)。 下面以一个简单实例演示 由于Consumer函数式接口如下@FunctionalInterfacepublic interface Consumer<T> { /*传入一个类型,返回void*/ v

2018-02-11 23:06:54 1984

转载 java字符串格式化:String.format()方法的使用

常规类型的格式化 String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的读者应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。l format(String format, Object… args)该方法使用指定的字符串格式和参数生成格式化的新字符串。 新字符串始终使用本地语言环境。例如当前日期信息在中国语

2018-02-11 10:11:49 421

原创 Lambda使用(二)->四大核心函数式接口

上一篇博客已经介绍了自定义函数式接口,然后用Lambda来实现。在java8中已经内置了很多函数式接口,下面举例常用的Consumer、Supplier、Function和Predicate四大核心接口。一、Consumer接口在java8源码中,Consumer的接口如下。/*@FunctionalInterface注解表示一个接口类为函数式接口*/@FunctionalInterfacepu

2018-02-08 23:27:50 1858

原创 Lambda使用(一)

Java8中引入了一个新的操作符 “->” 该操作符称为箭头操作符或 Lambda 操作符箭头操作符将 Lambda 表达式拆分成两部分: 左侧:Lambda 表达式的参数列表; 右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体。 下面以一个简单实例看 首先建一个接口类Info:public interface Info { public void show();

2018-02-07 23:38:41 330

原创 枚举类应用

例1:无参枚举类其中RED,GREEN,BLACK分别代表一个Color对象,是一个Color对象的实例 public enum Color { RED, GREEN, BLACK; } 测试方法package com.lzj.enum1;public class ColorTest { public static void main(String[] args) {

2018-02-04 19:40:00 170

原创 Spring之事务使用

本文以声明式事务为例 只需要在spring的配置文件中配置需要的数据源和事务管理器,然后在需要用到事务的方法上加注解@Transactional 即可。下面以买书为例,如果用户的账户里面有足够的金额,可以买书,减少属书的库存,如果不够,进行事务回滚。书的单价表 书的库存表 用户账户表 一、步骤1、配置spring的配置文件beans xmlns="ht

2018-01-31 23:01:19 206

原创 JdbcTemplate的使用

下面介绍用spring中的JdbcTemplate操作数据库一以mysql为例,employee表信息如下 1、首先创建employee表对应的实体beanpackage com.lzj.spring.jdbc;public class Employee { //注意:定义的变量名字一定要与数据库中的变量一致 private Integer id;

2018-01-29 22:34:48 284

转载 ThreadLocal原理解析(1):数据存取

本文是源码解析是基于JDK 1.7注意:Android内使用的ThreadLocal跟JDK内部的ThreadLocal具体实现有区别。但是他们所做的功能是一致的,只是Android针对ThreadLocal做了优化。但这不影响我们学习ThreadLocal的实现思想。ThreadLocal的使用相信大家都比较熟悉,但是ThreadLocal内部是如何做到为不同线程保存不同的副本的呢?能看到这篇文...

2018-01-29 15:35:17 302

原创 Mybatis之批量执行SQL语句

之前做批量插入SQL时都是用的<foreach>标签,但有时需要插入成千上万条语句,此时用<foreach>标签拼接的SQL就会非常大,有时数据库识别不了。<foreach> 标签作用组成一个非常大的批量插入SQL语句,让不同数据库去支持执行非常大的SQL语句;而mybatis本身设计了批量执行SQL的方法,让数据库一条一条的SQL语句执行,但不是每执行一条连接一次数据库,而是连接一次数据库,然后依

2018-01-28 16:04:01 13614

原创 Mybatis的逆向工程

在一般应用mybatis框架时,一般先手动创建数据库表对应的bean,然后手动创建DAO接口,然后手动写mapper文件,最后在应用中调用mapper接口。本篇博客中介绍如何自动创建bean、DAO、mapper文件,以上三种不用手动创建,只需要自动生成,然后在应用中直接调用即可,这就是Mybatis的逆向工程(MyBatis Generator,简称MBG)。MBG是一个专门为MyBatis框架

2018-01-27 15:57:08 264

原创 "=="和equals()的区别

一、基本类型对于java中的简单类型int,如若比较两个值的大小只能用“==”。int n1 = 10;int n2 = 10;if(n1 == n2){ //相等 System.out.println("n1 == n2");}二、JDK自带的类比如ArrayList、HashMap等等类型,“==”比较的是两个对象的类型,equals比较的是对象中的值是否相等。 Li

2018-01-25 16:40:35 225

原创 Integer.parseInt(s)与Integer.valueOf(s)的区别详解

一、Integer.parseInt(s)用法 String s1 = "1000"; String s2 = "1000"; int n1 = Integer.parseInt(s1); int n2 = Integer.parseInt(s2); if (n1 == n2) { System.out.p

2018-01-25 15:34:17 67310 18

原创 22、动态SQL之<bind>标签使用

假设PERSON表中有id、name、age三个字段,现在要查询name中含有”x”的记录,通常做法如下方式一(推荐);首先定义DAO接口:public List<Person> getPersons(@Param("pattern")String pattern);定义dao接口对应的mapper文件: <select id="getPersons" resultType="com.lzj.

2018-01-24 00:17:38 4529

原创 21、动态SQL之内置参数_parameter的使用

_parameter表示传入SQL中整体参数。下面以查询为例示例一: 假设用name查PERSON表,定义对应的DAO接口为:package com.lzj.mybatis.dao;import java.util.List;import com.lzj.mybaits.bean.Person;public interface PersonDao { public List<Pers

2018-01-23 23:52:33 1187

原创 20、动态SQL之<foreach>标签

有时传入SQL语句中的参数为一个集合,在SQL语句中就需要遍历集合中的每一个参数,此时就需要用到了<foreach>标签。下面以具体情况演示一、查询查询PERSON表中id={1,2,3}的记录,SQL语句为:select * from PERSON where id in (1,2,3)下面在mybatis中实现该SQL语句,首先定义对应的DAO接口:public interface Person

2018-01-23 00:06:33 638

原创 19、动态SQL之<set><if>标签的使用

当更新表时,只更新值不为空的字段。需要用<if>判断传入的值是否不为空,然后更新值不为空对应的字段。 <update id="updatePerson"> <!-- Set标签的使用 --> update PERSON set <if test="lastName!=null"> las

2018-01-21 12:29:28 5481 1

原创 18、动态SQL之<choose><when><otherwise>标签

在mybatis中使用<choose><when><otherwise>标签的作用,类似于Java 的 switch 语句的作用,其中只有一个判断满足条件。 <select id="getPerson" resultType="com.lzj.bean.Employee"> select * from PERSON <!--<where>标签起到了where的

2018-01-21 11:54:51 1595

原创 17、动态SQL之<trim>

在上一节中,像下面写法<select id="getPerson" resultType="com.lzj.bean.Person"> select * from person <where> <if test="id!=null"> id=#{id} and </if> <if test="lastName!=

2018-01-20 23:56:25 943

原创 16、动态SQL之<where>、<if>条件判断

错误方式一: 在mybatis的动态sql语句中使用标签可以判断sql中的条件是否成立。 select id="getPerson" resultType="com.lzj.bean.Employee"> select * from tbl_employee where if test="id!=null">

2018-01-20 21:34:34 41457 6

转载 MyBatis中的OGNL教程

有些人可能不知道MyBatis中使用了OGNL,有些人知道用到了OGNL却不知道在MyBatis中如何使用,本文就是讲如何在MyBatis中使用OGNL。如果我们搜索OGNL相关的内容,通常的结果都是和Struts有关的,你肯定搜不到和MyBatis有关的,虽然和Struts中的用法类似但是换种方式理解起来就有难度。MyBatis常用OGNL表达式e1 or e2e1 and e2e1 == e

2018-01-20 21:15:33 436

原创 15、Mybatis之一对多级联查询

<1>通过一个表的一个字段去查询另一个表的多条记录一对多的级联查询表示一个表中一条记录对应另一个表中多条记录,例如一种型号的手机有多个人使用。 手机对应的表为PHONE: 人对应的表PERSON: 建立PHONE表对应的实体类,一个品牌的手机有多个人在使用package com.lzj.mybaits.bean;public class Phone { private S

2018-01-20 18:40:23 826

原创 14、Mybatis之一对一关联查询

例如一个人有一部手机,每个品牌手机的价格不同,下面通过两个表来表示这个时间,PERSON表和PHONE表。PERSON表: PHONE表: 两个表中通过phone_brand字段对应,首先在PERSON表中通过id查询出某人拥有的手机品牌phone_brand,然后在PHONE表中通过手机品牌phone_brand查出价格。实现两个表的一对一关联查询。下面演示如何用mybatis实现此两个表一对

2018-01-17 23:41:41 1189

原创 13、Mybatis把返回结果封装成map类型

一、Mybatis把返回结果封装成map类型,表的字段名对应map中的key,字段所属的值对应map中的value例如接口为:public interface UserDao { public Map getMapUser(int id);}接口在mybatis中的实现为:mapper namespace="com.lzj.mybatis.dao.UserDao

2018-01-15 22:25:37 51609 3

helm-tiller.tar

由于谷歌被强,无法下载谷歌镜像,特此提供Helm的服务器端Tiller的镜像,该镜像可以在k8s中用于创建pod

2020-11-19

kubeadm-basic.images.tar.gz

安装kubeadm时,需要登录到google才能下载google镜像,由于国内不能登录google,所以上传google的镜像

2020-06-10

android入门教程

对于没了解过android开发的同学非常适合。

2015-10-04

STC的详细介绍

该文档400多页,全面细致的介绍了STC单片机,是新手学习的好资料,也是技术人员备用查阅的好资料。档

2013-10-07

空空如也

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

TA关注的人

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