본문 바로가기

삽질

[Spring Boot]Repository could not be found in @Configuration Configuration에서 reposotory를 받아야 하는 경우가 발생해서 autowired를 했다. 하지만, 아래와 같은 에러를 만나게 되었다. 왜 빈을 찾을 수 없을까에 대해 고민을 했다. 설정파일이기 때문에 repository 빈을 가져올 수 없나?라고 생각을 잠깐 했었지만, @Repository역시 @Component와 마찬가지로 빈으로 등록하기 때문에 내 생각은 틀렸다. 나와 비슷한 문제를 가진 사람이 있을거 같아서 검색을 했다. 역시나 stackoverflow에 나와 같은 문제가 있었다. Can't Autowire @Repository annotated interface in Spring Boot 댓글 중, 아래 사진과 같이 Repository를 확인라라는 글을 봤다. 아니나 다를까, 오타.. 더보기
[Spring Boot] org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement DB 테이블의 컬럼 이름을 수정하고 이름이 일치하지 않아서 발생되는 에러입니다. ORM으로 DB 테이블을 만드시는 분들은 컬럼 이름을 자세히 확인해 보시기 바랍니다. 데이터가 없어져도 괜찮으신 분들은, DB 테이블을 삭제하고 하면 다시 실행하면 됩니다. 더보기
[Spring Boot] @AuthenticationPrincipal null value jwt + security로 토큰을 통해 사용자의 정보를 받아오고 있다. 위의 코드를 실행하는데 PrincipalDetails가 null 값이 들어온다. successfulAuthentication()의 jwt 생성 부분 doFilterInternal()의 jwt 인증 부분 자세히 보면 successfulAuthentication()의 withClaim() 부분과 doFilterInternal()의 getClaim()의 부분이 다르다. 하나는 username 이고, 다른 하나는 userName이다. 이틀간 고생해서 겨유 오류를 해결할 수 있었다. 토큰을 생성하는 부분과, 인증하는 부분의 value 값이 달라서 null 값이 들어오는 것이었다. String의 값을 파라미터로 주입할 때, 오타 조심하자!! 더보기