• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

JpaRepository cannot be resolved to a type 가 발생합니다 .

19.02.21 00:20 작성 조회수 571

0

JpaRepository cannot be resolved to a type

이러한 에러가 자꾸 떠서 다음으로 넘어가질 못하는데요 ...

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.1.3.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<groupId>com.antMart.com</groupId>

<artifactId>springsecurityEducation</artifactId>

<version>0.0.1-SNAPSHOT</version>

<name>springsecurityEducation</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-security</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.security</groupId>

<artifactId>spring-security-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

</plugins>

</build>

jap랑 boot 는 다 설정했거던요 ..어디가 문젠지 모르겠어요 maven update계속 해도 마찬가지네요 ..

그리고 서비스파일에

private Collection<? extends GrantedAuthority> authorities() {

return Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"));

}

위에 부분 import가 잘못된건지 아니면 먼가를 빠트렸는지 모르겠네요 다 확인해봐도 정확한 답ㅁ을 못찾겠습니다 .

서비스 파일입니다 .

import java.util.Arrays;

import java.util.Collection;

import java.util.Optional;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.security.core.GrantedAuthority;

import org.springframework.security.core.authority.SimpleGrantedAuthority;

import org.springframework.security.core.userdetails.User;

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;

@Service

public class AccountService implements UserDetailsService {

@Autowired

private AccountRepositorys accountRepository;

public Account createAccount(String username, String password) {

Account account = new Account();

account.setUsername(username);

account.setPassword(password);

return accountRepository.save(account);

}

@Override

public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {

Optional<Account> byUserName = accountRepository.findByUsername(username);

// 없으면 뱉어라

Account account = byUserName.orElseThrow(() -> new UsernameNotFoundException(username));

return new User(account.getUsername(), account.getPassword(), authorities());

}

private Collection<? extends GrantedAuthority> authorities() {

return Arrays.asList(new SimpleGrantedAuthority("ROLE_USER"));

}

}

interface 부분입니다 .

import java.util.Optional;

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

public interface AccountRepositorys extends JpaRepository<Account, Long> {

Optional findByUsername(String username);

}

runner 부분 입니다 .

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.ApplicationArguments;

import org.springframework.boot.ApplicationRunner;

public class AccountRunner implements ApplicationRunner {

@Autowired

AccountService accountService;

@Override

public void run(ApplicationArguments args) throws Exception {

Account account = accountService.createAccount("keesun","1234");

System.out.println(account.getUsername()+""+account.getPassword());

}

}

maven clean과 project clean 여러번 해서 한번 된거같은데 그떄는 Service쪽에서

Description:

Field accountRepository in com.antMart.com.AccountService required a bean of type 'com.antMart.com.AccountRepositorys' 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.antMart.com.AccountRepositorys' in your configuration.

이러한 에러가 발생했습니다 ..STS 사용중이구요 어디가 잘못된건지 모르겠습니다 ;

답변 1

답변을 작성해보세요.

0

AccountRepositorys 이거 어느 패키지에 들어있나요? 코드를 깃헙에 올리고 링크를 주셨으면 더 좋을거 같네요.