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

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

ただいまの
回答率

90.48%

  • Java

    14116questions

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

  • Spring Boot

    537questions

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

spring bootでJPAをつかっているのですが

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 349

yuki1111

score 35

spring bootでspring boot securityを使ったログイン認証を実装している途中なのですが、
起動時に「Description:

Field userRepository in co.jp.yuki.koike.sample.domain.service.user.UserDetailsServiceImpl required a bean of type 'co.jp.yuki.koike.sample.domain.service.user.UserRepository' that could not be found.

と表示され、起動できません。
恐らく、
sample\src\main\java\co\jp\yuki\koike\sample\domain\service\user\UserDetailsServiceImpl.java
か、
sample\src\main\java\co\jp\yuki\koike\sample\domain\service\user\UserRepository.java
に原因があると思います。

githubにあげたものを見てご指摘いただけないでしょうか?

githubにあげたソースコード
↑repositoryを削除致しました。

■ 起動時のログ

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.1.RELEASE)

2018-06-20 09:00:37.955  INFO 8960 --- [           main] co.jp.yuki.koike.sample.SampleApplication       : Starting SampleApplication on DESKTOP-BD2CRPU with PID 8960 (C:\Users\nec\git\sample\target\classes started by nec in C:\Users\nec\git\sample)
2018-06-20 09:00:37.970  INFO 8960 --- [           main] co.jp.yuki.koikr.sample.SampleApplication       : No active profile set, falling back to default profiles: default
2018-06-20 09:00:38.601  INFO 8960 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@61230f6a: startup date [Wed Jun 20 09:00:38 JST 2018]; root of context hierarchy
2018-06-20 09:00:45.514  INFO 8960 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2018-06-20 09:00:45.622  INFO 8960 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-06-20 09:00:45.622  INFO 8960 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.29
2018-06-20 09:00:45.646  INFO 8960 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\pleiades-4.7.1-ultimate-win-64bit-jre_20171019\pleiades\eclipse\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/pleiades-4.7.1-ultimate-win-64bit-jre_20171019/pleiades/eclipse/jre/bin/../jre/bin/server;C:/pleiades-4.7.1-ultimate-win-64bit-jre_20171019/pleiades/eclipse/jre/bin/../jre/bin;C:/pleiades-4.7.1-ultimate-win-64bit-jre_20171019/pleiades/eclipse/jre/bin/../jre/lib/amd64;C:\app\nec\product\12.2.0\dbhome_1\bin;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Skype\Phone\;C:\Program Files\Java\jdk1.8.0_151\bin;C:\HashiCorp\Vagrant\bin;C:\Program Files\PuTTY\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\TortoiseGit\bin;C:\Program Files (x86)\Nodist\bin;C:\Users\nec\AppData\Local\Microsoft\WindowsApps;;C:\Users\nec\AppData\Local\Programs\Fiddler;C:\pleiades-4.7.1-ultimate-win-64bit-jre_20171019\pleiades\eclipse;;.]
2018-06-20 09:00:46.940  INFO 8960 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-06-20 09:00:46.940  INFO 8960 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 8354 ms
2018-06-20 09:00:47.308  INFO 8960 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-06-20 09:00:47.308  INFO 8960 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-06-20 09:00:47.308  INFO 8960 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-06-20 09:00:47.308  INFO 8960 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2018-06-20 09:00:47.308  INFO 8960 --- [ost-startStop-1] .s.DelegatingFilterProxyRegistrationBean : Mapping filter: 'springSecurityFilterChain' to: [/*]
2018-06-20 09:00:47.308  INFO 8960 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-06-20 09:00:47.862  WARN 8960 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'webSecurityConfig': Unsatisfied dependency expressed through field 'userDetailsService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userDetailsServiceImpl': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'co.jp.g.n.sample.domain.service.user.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
2018-06-20 09:00:47.878  INFO 8960 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2018-06-20 09:00:48.445  INFO 8960 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-06-20 09:00:48.810 ERROR 8960 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Field userRepository in co.jp.yuki.koikr.sample.domain.service.user.UserDetailsServiceImpl required a bean of type 'co.jp.yuki.koikr.sample.domain.service.user.UserRepository' that could not be found.


Action:

Consider defining a bean of type 'co.jp.yuki.koike.sample.domain.service.user.UserRepository' in your configuration.

■ UserDetailsServiceImpl.java

package co.jp.yuki.koike.sample.domain.service.user;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

import co.jp.yuki.koike.sample.domain.model.User;

@Service
public class UserDetailsServiceImpl implements UserDetailsService {

    @Autowired
    UserRepository userRepository;


    @Override
    public UserDetails loadUserByUsername(String username)
            throws UsernameNotFoundException {
        User user = Optional.ofNullable(userRepository.findOne(username))
                .orElseThrow(() -> new UsernameNotFoundException(username + " is not found."));
        return new UserDetailsImpl(user);
    }
}

■ UserRepository.java

package co.jp.yuki.koike.sample.domain.service.user;

import org.springframework.data.jpa.repository.JpaRepository;

import co.jp.yuki.koike.sample.domain.model.User;

public interface UserRepository extends JpaRepository<User, String> {

    User findOne(String username);
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

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

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

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

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

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

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

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

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yuki1111

    2018/06/21 02:02

    お二方、ありがとうございます。6/8で退職したのですが、在籍していた会社でチームを組んで自主的にアプリケーションを作っていました。残された人達が参考にできるものを作ろうと思い、githubにあげていました。チームで自主的に作っていたものなので、公開しても問題にはならないのですが、トラブルにならないようrepositoryを削除しました。パッケージ名を変更してまたあげますが・・・

    キャンセル

  • mts10806

    2018/06/21 10:04

    退職した先であれば尚更扱いには注意された方が良いです。全世界から参照できるようなので、悪用される可能性もありますし、それで訴えられても文句は言えません。

    キャンセル

  • yuki1111

    2018/06/21 10:21

    ありがとうございます。会社は辞めましたが、これからもこの業界でやっていくので、プロ意識を高めます!

    キャンセル

回答 1

checkベストアンサー

+1

spring-data-jpa

@Repository
public interface GroupRepository extends CrudRepository<GroupInfo, String> {

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/20 12:46

    インタフェースにはアノテーションが不要だと思い込んでいました。ありがとうございます。

    キャンセル

  • 2018/06/20 13:02 編集

    @Controler,@Repository,@Service などはSpringが最初にDIコンテナにbean登録するために必要です。
    また上の3つは単に @Componentの別名です。アノテーションで行うことはbean登録することで、役割がわかりやすいように名前を付けてるだけです。

    キャンセル

  • 2018/06/21 02:02

    >euledge
    ありがとうございます。また成長した気がします!

    キャンセル

関連した質問

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

  • Java

    14116questions

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

  • Spring Boot

    537questions

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