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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

Spring Boot

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

受付中

Java spring bootでのビルドエラー

tamutomo
tamutomo

総合スコア4

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

Spring Boot

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

1回答

0評価

0クリップ

10609閲覧

投稿2020/02/01 14:24

編集2022/01/12 10:55

前提・実現したいこと

Javaのspring bootを使用して、投稿式のアプリを作成したいと考えております。
今回はJPAを使ってMySQLからデータを引っ張ってきて表示するシステムを、とりあえず完成させたいです。

環境

ProductName: Mac OS X ProductVersion: 10.15.2 BuildVersion: 19C57 java version "13.0.2" 2020-01-14 Java(TM) SE Runtime Environment (build 13.0.2+8) Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing) ーエディター Eclipse Version: 2.3.0.v20191210-0610 Spring Tool Suite 4 Version: 4.5.1.RELEASE

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

ビルドの際のエラーです。

*************************** APPLICATION FAILED TO START *************************** Description: Field repos in com.example.demo.HelloController required a bean of type 'com.example.demo.Repos' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'com.example.demo.Repos' in your configuration.

該当のソースコード

ファイル構造はこんな感じで同じパッケージに4つのJavaファイル全て入れています。
イメージ説明

これがエラーの出ているページです

HelloController

package com.example.demo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; import org.springframework.ui.Model; @Controller public class HelloController { @Autowired public Repos repos; //ここでビルドエラー @RequestMapping("/") public String index(Model model) { model.addAttribute("message", "こんにちは");      //ビルド成功後はこの辺でデータを引っ張り出したい return "index"; } }

エンティティ用のページです

Test

package com.example.demo; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Table; import javax.persistence.Id; @Entity @Table(name="java") public class Test { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String title; private String content; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }

リポジトリ用のページです

Repos

package com.example.demo; import org.springframework.data.jpa.repository.JpaRepository; public interface Repos extends JpaRepository<Test, Integer>{ }

試したこと

・@Autowiredは原則同じパッケージ内からしか呼ぶことができないのでそれを確認。

補足情報(FW/ツールのバージョンなど)

pom.xmlファイルです

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>hello</artifactId> <version>0.0.1-SNAPSHOT</version> <name>hello</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

application.propertiesです

spring.jpa.hibernate.ddl-auto=none spring.datasource.url=jdbc:mysql://localhost:3306/javaTest spring.datasource.username=root spring.datasource.password=

※補足情報
以前VSCodeを使った時は特にエラーは出ませんでしたのでツールの問題の可能性もあるかもしれません。

※以下ビルド手順です
SpringToolSuite4を使っております。

フォルダを右クリックして→実行→SpringBootApplicationです

イメージ説明

※ご教授いただいた./mvnw clean packageに必要な物をダウンロードし、試しましたが
同じエラーが出てしまいます。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

rubytomato

2020/02/01 14:33

以下の点について、質問に追記ください。 1) pom.xml の内容 2) application.properties (又は application.yml) の内容 それと、試したことに書かれている ”@Autowiredは原則同じパッケージ内からしか呼ぶことができない” という点ですがそんなことは無いと思っています。この情報の出所を教えてください。
asahina1979

2020/02/01 14:47

@rubytomato アノテーション問題じゃないの(たくさん出てくる質問なので回答はしない
rubytomato

2020/02/01 15:54

追記ありがとうございました。 同じようなプロジェクトを作成して動作確認しましたが、エラーになることなくビルドとアプリケーションの起動ができました。 なので、エラーの原因はプロジェクトの方ではなく環境の方にあるかもしれません。 なお今回のエラーとは関係はないと思いますが、pom.xmlに重複した記述(spring-boot-starter-data-jpa、mysql-connector-java)があったので、こちらは後ろの方を削除しておいた方がいいかと思います。 ビルドの際にエラーが発生したということですが、ビルドの実行手順(操作手順)を質問内容に追記頂ければ、もう少し調べられるかもしれません。 その際は、実行手順と合わせてエラーメッセージの全文を記載ください。 それと、プロジェクトのディレクトリでコンソールから mvnw clean package と実行してビルドが通るかご確認ください。 最後に、参考にされた記事ですが見たところ間違った情報のようですので、参考になさらない方がいいかと思います。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

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

Spring

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

Spring Boot

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