Objective of guideline
This guideline provides best practices to develop Batch applications with high maintainability, using full stack framework focusing on Spring Framework, Spring Batch and MyBatis.
This guideline helps smooth progress of software development (mainly coding).
Target readers
This guideline is written for architects and programmers having software development experience and knowledge of the following.
-
Basic knowledge of DI and AOP of Spring Framework
-
Application development experience using Java
-
Knowledge of SQL
-
Have experience of using Maven
This guideline is not for Java beginners.
Refer to Spring Framework Comprehension Check to assess whether you have the basic knowledge to understand the document. If you are unable to answer 40% of the Comprehension test questions, it is recommended to study separately using following books.
Structure of guideline
For the start, importantly, the guideline is regarded as a subset of TERASOLUNA Server Framework for Java (5.x) Development Guideline (hereafter, referred to as TERASOLUNA Server 5.x Development Guideline). By using TERASOLUNA Server 5.x Development Guideline, you can eliminate duplication in explanation and reduce the cost of learning as much as possible. Since TERASOLUNA Server 5.x Development Guideline is referenced everywhere, we would like you to proceed with the development by using both guides.
- TERASOLUNA Batch Framework for Java (5.x) concept
-
Explains the basic concept of batch processing, the basic concept of TERASOLUNA Batch Framework for Java (5.x) and the overview of Spring Batch.
- Flow of application development
-
Explains the knowledge and method to be kept in mind while developing an application using the TERASOLUNA Batch Framework for Java (5.x).
- Running a Job
-
Explains Synchronous execution, Asynchronous execution and how to start a job for example by using startup parameters.
- Input/output of data
-
Explains Input/Output to various resources such as Database, File access, etc.
- Handling abnormal cases
-
Explains how to handle the abnormal conditions like Input checks, Exceptions.
- Job management
-
Explains how to manage the Job execution.
- Flow control and parallel/multiple processing
-
Explains the process of parallel/multiple Job execution.
- Tutorial
-
Experience batch application development with TERASOLUNA Batch Framework for Java (5.x), through basic batch application development.
How to read guideline
All the developers using the TERASOLUNA Batch Framework for Java (5.x) are stronly recommended to read following contents.
Following contents are usually required, so it is better to read those in advance. It is better to select according to the development target.
First refer to the following contents when proceeding with advanced implementation.
Developers who want to experience actual application development by using TERASOLUNA Batch Framework for Java (5.x) are recommended to read following contents. While experiencing TERASOLUNA Batch Framework for Java (5.x) for the first time, you should read these contents first and then move on to other contents.
Notations in guideline
This section describes the notations of this guideline.
- About Windows command prompt and Unix terminal
-
If Windows and Unix systems don’t work due to differences in notation, both are described. Otherwise, unified with Unix notation..
- Prompt sign
-
Describe as
$
in Unix.
$ java -version
- About defining properties and constructor of Bean definition
-
In this guideline, it is described by using namespace of
p
andc
. The use of namespace helps in simplifying and clarifying the description of Bean definition.
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean class="org.terasoluna.batch.item.file.transform.FixedByteLengthLineTokenizer"
c:ranges="1-6, 7-10, 11-12, 13-22, 23-32"
c:charset="MS932"
p:names="branchId,year,month,customerId,amount"/>
</property>
</bean>
For your reference, the description not using namespace is shown.
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer">
<bean class="org.terasoluna.batch.item.file.transform.FixedByteLengthLineTokenizer">
<constructor-arg index="0" value="1-6, 7-10, 11-12, 13-22, 23-32"/>
<constructor-arg index="1" value="MS932"/>
<property name="names" value="branchId,year,month,customerId,amount"/>
</property>
</bean>
This guideline does not force the user to use a namespace. We would like to consider it for simplifying the explanation.
Tested environments of guideline
For tested environments of contents described in this guideline, refer to " Tested Environment".