본문 바로가기

IT&컴퓨터

자바 스프링부트에서 .findOne() 메소드 사용이 실패할 때

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(new UserDetailsService() {
            @Override
            public UserDetails loadUserByUsername(String username)
                    throws UsernameNotFoundException {
                return readerRepository.findOne(username);
            }
        });
    }

다음과 같은 코드가 계속 빌드가 안 되고...

 

intellij에서 잘 살펴보면 readerRepository.findOne(username)에 붉은 줄이 그어지는 것을 확인할 수 있다.

 

알고 봤더니 최신 버전 스프링부트에서는 findOne 메서드 대신 .findById(username).orElse(null); 으로 바꿔 써야 정상적으로 빌드가 된다고 한다.

 

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(new UserDetailsService() {
            @Override
            public UserDetails loadUserByUsername(String username)
                    throws UsernameNotFoundException {
                return readerRepository.findById(username).orElse(null);
            }
        });
    }

 

이런 류의 프레임워크의 마이너한 변화가 의외로 큰 고통을 가져온다.. 하..