質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Spring Batch

Spring Batchは、バッチ処理向けに定義されたオープンソースのフレームワーク。エンタープライズシステムで避けて通れないバッチ処理を可能にします。設定ファイルに別定義することで効率よく開発することがで可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

211閲覧

SpringBatchを実行しHelloWorldを出力したい

ZSJNSK

総合スコア1

Spring Batch

Spring Batchは、バッチ処理向けに定義されたオープンソースのフレームワーク。エンタープライズシステムで避けて通れないバッチ処理を可能にします。設定ファイルに別定義することで効率よく開発することがで可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2024/12/05 06:13

実現したいこと

以下のサイトを参考に、SpringBatchでハローワールドを出力しようとしていますが、出力できません。
参考①:
https://qiita.com/kawakawaryuryu/items/4b3f5cc7574b7bd6b625
https://kagamihoge.hatenablog.com/entry/2023/03/24/192846

発生している問題・分からないこと

実行自体は正常終了しており、特にエラーになっていないため、
何が足りないのか、何がうまく行っていないのかも読み取れない状況です。

1点、コンソール上には以下のワーニングが出力されていました。

WARN 32268 --- [ccc] [ restartedMain] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[aaa.bbb.ccc]' package. Please check your configuration.

このエラーメッセージを調べてみると、以下のサイトのように
Mapperクラスでの定義/指定不足が原因との情報にたどり着きました。
参考②:
https://qiita.com/azmint/items/7c6040e9136dd6d0f556
https://teratail.com/questions/301664

しかし、上記「参考①」の中には「Mapper」という単語は出てこず
何をどうすれば、ハローワールドが出力されるかわからない状態です。

該当のソースコード

Java:TestApplication.java

1package aaa.bbb.ccc; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6@SpringBootApplication 7public class TestApplication { 8 public static void main(String[] args) { 9 SpringApplication.run(TestApplication .class, args); 10 } 11}

Java:BatchConfig.java

1package aaa.bbb.ccc; 2 3import org.springframework.batch.core.Job; 4import org.springframework.batch.core.Step; 5import org.springframework.batch.core.job.builder.JobBuilder; 6import org.springframework.batch.core.repository.JobRepository; 7import org.springframework.batch.core.step.builder.StepBuilder; 8import org.springframework.batch.repeat.RepeatStatus; 9import org.springframework.context.annotation.Bean; 10import org.springframework.context.annotation.Configuration; 11import org.springframework.transaction.PlatformTransactionManager; 12 13@Configuration 14public class BatchConfig { 15 @Bean 16 Job job(JobRepository jobRepository, PlatformTransactionManager txManager) { 17 Step step = new StepBuilder("sampleStep", jobRepository) 18 .tasklet((contribution, chunkContext) -> { 19 System.out.println("Hello World."); 20 return RepeatStatus.FINISHED; 21 }, txManager) 22 .build(); 23 24 return new JobBuilder("sampleJob", jobRepository) 25 .start(step) 26 .build(); 27 } 28}

build.gradle

1plugins { 2 id 'java' 3 id 'org.springframework.boot' version '3.4.0' 4 id 'io.spring.dependency-management' version '1.1.6' 5} 6 7group = 'aaa.bbb' 8version = '0.0.1-SNAPSHOT' 9 10java { 11 toolchain { 12 languageVersion = JavaLanguageVersion.of(21) 13 } 14} 15 16configurations { 17 compileOnly { 18 extendsFrom annotationProcessor 19 } 20} 21 22repositories { 23 mavenCentral() 24} 25 26dependencies { 27 implementation 'org.springframework.boot:spring-boot-starter-batch' 28 implementation 'org.springframework.boot:spring-boot-starter-web' 29 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.4' 30 compileOnly 'org.projectlombok:lombok' 31 developmentOnly 'org.springframework.boot:spring-boot-devtools' 32 runtimeOnly 'com.mysql:mysql-connector-j' 33 annotationProcessor 'org.projectlombok:lombok' 34 testImplementation 'org.springframework.boot:spring-boot-starter-test' 35 testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.4' 36 testImplementation 'org.springframework.batch:spring-batch-test' 37 testRuntimeOnly 'org.junit.platform:junit-platform-launcher' 38} 39 40tasks.named('test') { 41 useJUnitPlatform() 42} 43

application.properties

1spring.application.name=ccc 2spring.batch.job.enabled=false 3mybatis.configuration.map-underscore-to-camel-case=true 4spring.datasource.url=jdbc:mysql://localhost:3306/testdb?enabledTLSProtocols=TLSv1.2 5spring.datasource.username=root 6spring.datasource.password=root 7spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

エラーが出ていないため、解消する情報にたどり着けなかった。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shiketa

2024/12/05 08:14

>o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in ... ということなので、mybatis の設定が不足している。 とりあえずDBアクセスが不要なのであれば、build.gradleから、mybatis のついた依存設定を削除してみてはいかがでしょうか。
guest

回答1

0

※質問の投稿自体が随分前なので既に解決されているとは思いますが、目に留まって試してみたので情報として回答を投稿しておきます。同様の問題に突き当たった方の一助にでもなれば幸いです。


以下のサイトを参考に、SpringBatchでハローワールドを出力しようとしていますが、出力できません。

...

発生している問題・分からないこと
実行自体は正常終了しており、特にエラーになっていないため、
何が足りないのか、何がうまく行っていないのかも読み取れない状況です。

「application.properties」ファイルでの設定がspring.batch.job.enabled=falseのせいだと考えられます。これを無効にするか、値をtrueにすればタスクレットが実行されるはずです。

application.propertiesファイル

plain

1#spring.batch.job.enabled=false 2spring.batch.job.enabled=true

spring.batch.job.enabled=trueで当方の環境で実行した例を示します。(もちろん、falseの場合は"Hello World."は出力されません)

console

1 . ____ _ __ _ _ 2 /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ 3( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 4 \\/ ___)| |_)| | | | | || (_| | ) ) ) ) 5 ' |____| .__|_| |_|_| |_\__, | / / / / 6 =========|_|==============|___/=/_/_/_/ 7 :: Spring Boot :: (v3.0.4) 8 92025-03-12T16:40:50.615+09:00 INFO 15776 --- [ main] c.e.demo.SpringBatchTest2Application : Starting SpringBatchTest2Application using Java 21.0.6 with PID 15776 (C:\Users\hoge\eclipse-workspace\SpringBatchTest2\target\classes started by hoge in C:\Users\hoge\eclipse-workspace\SpringBatchTest2) 102025-03-12T16:40:50.618+09:00 INFO 15776 --- [ main] c.e.demo.SpringBatchTest2Application : No active profile set, falling back to 1 default profile: "default" 112025-03-12T16:40:51.238+09:00 INFO 15776 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 122025-03-12T16:40:51.426+09:00 INFO 15776 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:a59e0ad3-cbd6-4014-a2c7-643af1ae3887 user=SA 132025-03-12T16:40:51.433+09:00 INFO 15776 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 142025-03-12T16:40:51.671+09:00 INFO 15776 --- [ main] c.e.demo.SpringBatchTest2Application : Started SpringBatchTest2Application in 1.413 seconds (process running for 2.005) 152025-03-12T16:40:51.673+09:00 INFO 15776 --- [ main] o.s.b.a.b.JobLauncherApplicationRunner : Running default command line with: [] 162025-03-12T16:40:51.711+09:00 INFO 15776 --- [ main] o.s.b.c.l.support.SimpleJobLauncher : Job: [SimpleJob: [name=sampleJob]] launched with the following parameters: [{}] 172025-03-12T16:40:51.737+09:00 INFO 15776 --- [ main] o.s.batch.core.job.SimpleStepHandler : Executing step: [sampleStep] 18Hello World. 192025-03-12T16:40:51.746+09:00 INFO 15776 --- [ main] o.s.batch.core.step.AbstractStep : Step: [sampleStep] executed in 8ms 202025-03-12T16:40:51.752+09:00 INFO 15776 --- [ main] o.s.b.c.l.support.SimpleJobLauncher : Job: [SimpleJob: [name=sampleJob]] completed with the following parameters: [{}] and the following status: [COMPLETED] in 28ms 212025-03-12T16:40:51.757+09:00 INFO 15776 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 222025-03-12T16:40:51.759+09:00 INFO 15776 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.

確認した環境は以下、です。

  • Eclipse IDE for Enterprise Java and Web Developers (Version: 2024-12 (4.34.0))
  • Spring Tools (aka Spring Tool Suite) 4.23.1.RELEASE

私の場合はGradleではなくMavenを使っているので、一応、pom.xmlを示しておきます。

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>3.0.4</version> 9 <!-- 10 <version>3.4.3</version> 11 --> 12 <relativePath/> <!-- lookup parent from repository --> 13 </parent> 14 <groupId>com.example</groupId> 15 <artifactId>SpringBatchTest2</artifactId> 16 <version>0.0.1-SNAPSHOT</version> 17 <name>SpringBatchTest2</name> 18 <description>Demo project for Spring Boot</description> 19 <url/> 20 <licenses> 21 <license/> 22 </licenses> 23 <developers> 24 <developer/> 25 </developers> 26 <scm> 27 <connection/> 28 <developerConnection/> 29 <tag/> 30 <url/> 31 </scm> 32 <properties> 33 <java.version>17</java.version> 34 </properties> 35 <dependencies> 36 <dependency> 37 <groupId>org.springframework.boot</groupId> 38 <artifactId>spring-boot-starter-batch</artifactId> 39 </dependency> 40 41 <dependency> 42 <groupId>org.springframework.boot</groupId> 43 <artifactId>spring-boot-starter-test</artifactId> 44 <scope>test</scope> 45 </dependency> 46 <dependency> 47 <groupId>org.springframework.batch</groupId> 48 <artifactId>spring-batch-test</artifactId> 49 <scope>test</scope> 50 </dependency> 51 52 <dependency> 53 <groupId>com.h2database</groupId> 54 <artifactId>h2</artifactId> 55 </dependency> 56 57 </dependencies> 58 59 <build> 60 <plugins> 61 <plugin> 62 <groupId>org.springframework.boot</groupId> 63 <artifactId>spring-boot-maven-plugin</artifactId> 64 </plugin> 65 </plugins> 66 </build> 67 68</project>

投稿2025/03/12 08:02

dodox86

総合スコア9369

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問