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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

3回答

7747閲覧

Springが起動できません

rinimaruranran

総合スコア36

Java

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

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2018/10/16 04:05

編集2018/10/16 06:33

前提・実現したいこと

SpringでDOMAを使いたいのですが、SampleRepositoryが見つからないとエラーを吐かれてしまいます。
SampleApplicationの階層を移動させてみたりしているのですが、状況が変わりませんでした。
呼び出している階層も問題なさそうなのですが、どこが間違っているかわからない状況です。

発生している問題・エラーメッセージ

*************************** APPLICATION FAILED TO START *************************** Description: Field sampleRepository in com.example.sample.domain.service.SampleService required a bean of type 'com.example.sample.domain.repository.SampleRepository' that could not be found. Action: Consider defining a bean of type 'com.example.sample.domain.repository.SampleRepository' in your configuration.

該当のソースコード

package com.example.sample.domain.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.sample.domain.model.SampleEntity; //ここが呼ばれてくれない import com.example.sample.domain.repository.SampleRepository; @Service public class SampleService { @Autowired SampleRepository sampleRepository; public List<SampleEntity> getSample () { return sampleRepository.selectAll(); } }

階層

スクショ

@SampleApplication

package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication(scanBasePackages={"com.example.sample"}) @RestController public class SampleApplication { @RequestMapping("/") String hello() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(SampleApplication.class, args); } }

@SampleController

package com.example.sample.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.example.sample.domain.model.SampleEntity; import com.example.sample.domain.service.SampleService; @RestController public class SampleController { @Autowired SampleService sampleService; @RequestMapping(value = "/sample", method = RequestMethod.GET) public List<SampleEntity> getSample () { return sampleService.getSample(); } }

@SampleEntity

package com.example.sample.domain.model; import org.seasar.doma.Entity; import org.seasar.doma.Id; import org.seasar.doma.Table; @Entity @Table(name = "sample") public class SampleEntity { @Id private int id; // private String name; // //~ getter, setter 省略 ~ }

@SampleRepository

package com.example.sample.domain.repository; import java.util.List; import org.seasar.doma.Dao; import org.seasar.doma.Select; import org.seasar.doma.boot.ConfigAutowireable; import com.example.sample.domain.model.SampleEntity; @ConfigAutowireable @Dao public interface SampleRepository { @Select List<SampleEntity> selectAll(); }

@SampleService

package com.example.sample.domain.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.example.sample.domain.model.SampleEntity; //ここが呼ばれてくれない import com.example.sample.domain.repository.SampleRepository; @Service public class SampleService { @Autowired SampleRepository sampleRepository; public List<SampleEntity> getSample () { return sampleRepository.selectAll(); } }

補足情報

Eclipse
SpringToolSuite4
DOMA2
PostgreSQL

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

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

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

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

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

guest

回答3

0

自己解決

プロジェクト>プロパティ>Javaコンパイラー>注釈処理>ファクトリーパス
こちらのJARとやらが指定されていなかったため、
外部JARファイルを追加>該当の「doma-2.16.1.jar」というファイルを追加
するとエラーが消えました。

投稿2018/10/16 10:08

rinimaruranran

総合スコア36

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

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

0

DOMAは使用したことがないのでよくわからないですが、ググったらこんなのが過去にあったみたいです。
https://teratail.com/questions/107415
参考にならないでしょうか?

投稿2018/10/16 07:29

SE-studying-now

総合スコア351

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

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

rinimaruranran

2018/10/16 07:50

ご回答ありがとうございます! 申し訳ございませんが、こちらの記事はすでに参考にさせて頂きました、、
guest

0

IDEでintelliJを使ってるのでしたら、単純なバグらしいです。

https://stackoverflow.com/questions/26889970/intellij-incorrectly-saying-no-beans-of-type-found-for-autowired-repository

自分から見てもちょっとおかしくて、一応同じ仕組みで実装してみましたけど普通に動きました。IDEでのバグかと思います。もしEclipseを使ってるのでしたら、また別の問題ですけど…

それで解決法としては、単純にこうしてみてください。

java

1package com.example.sample.domain.repository; 2 3 4import com.example.sample.domain.model.SampleEntity; 5import org.seasar.doma.Dao; 6import org.seasar.doma.Select; 7import org.seasar.doma.boot.ConfigAutowireable; 8import org.springframework.stereotype.Repository; 9 10import java.util.List; 11 12@ConfigAutowireable 13@Dao 14@Repository // <- 追加 15public interface SampleRepository { 16 17 @Select 18 List<SampleEntity> selectAll(); 19 20}

https://github.com/yeondev/spring-doma-test/blob/master/src/main/java/com/example/sample/domain/repository/SampleRepository.java

一応動いてくれるみたいですが、ダメだったら言ってください。

投稿2018/10/16 06:12

編集2018/10/16 06:23
yeondev

総合スコア198

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

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

rinimaruranran

2018/10/16 06:26

ご回答ありがとうございます! そして申し訳ございません、、記載漏れしておりましたがEclipseを使用しております。 丁寧に教えていただいたのに申し訳ないです、、
yeondev

2018/10/16 06:27

@Repository 付けてもだめでしたでしょうか
rinimaruranran

2018/10/16 06:30

使わせて頂いたのですが、同じエラー文が出ております、、。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問