728x90 IT 이야기/CRUD7 [Spring] Spring Boot Security - principal 마이페이지 구현을 하면서 궁금한 점이 생겼다. 로그인할때 findByEmail 메소드로 유저 정보를 찾았고 null이 아닐때 로그에 성공했음을 확인했는데 그럼 이때 저장한 객체는 어떻게 사용할 수 있을까,?? 였습니다. 저장해둔 유저 객체를 가지고 마이페이지의 주문내역, 찜목록 조회를 하는데 쓰거나 유저정보를 수정하고 다시 저장할 때 사용할 수 있을것 같은데 따로 사용하는 방법이 궁금했습니다. 그래서 찾아보니 spring boot security에서 UserDetailsService를 상속 받아서 사용하면 @principal 어노테이션을 사용해서 로그인한 객체를 읽을 수 있습니다. @Override public UserDetails loadUserByUsername(String email) throws .. 2021. 5. 30. [Spring] Thymeleaf template적용 반복되는 코드를 줄이기위해 template를 적용해 보도록 하겠습니다. 보통 html에 컨텐츠를 개발하기 위해 아래 사진처럼 HTML소스에 영역을 필요한만큼 설정해서 만들게됩니다. 그런데 HTML을 만들다보면 HEADER, Footer처럼 항상 중복되는 코드들이 있게됩니다. 그럼 새로운 HTML을 만들때마다 저 만큼의 코드는 항상 들어가게 되는것 입니다. 지금은 얼마 없지만 나중에 가면 기본으로 들어가는 소스만 몇백줄이 되게됩니다. 유지보수에 상당히 안좋습니다. 답이라고는 할수 없지만 간단한 방법으론 Thymeleaf template을 활용하는 것 입니다. template를 사용하면 아래 사진처럼 코드에 미리 정의해둔 모듈을 주입하는 형태로 만들게 됩니다. layout이라는 폴더아래 header.html.. 2021. 5. 16. [Springboot] JPA적용 spring과 Database를 연결하는 방법으로 현업이나 토이프로젝트에서 mybatis, JPA 두가지를 많이 사용하게됩니다. 각자 장단점이 있는데 오늘 주제인 JPA는 데이터베이스의 테이블 구조를 class로 정의할 수 있는 장점이 있습니다. class로 정의하면 JPA가 알아서 Database에 테이블을 만들어주거나 수정하게 됩니다. 또한 Repository라는 클래스를 상속받으면 findBy , findAll 처럼 미리 정의된 메소드로 SQL query를 요청할 수 있고 결과도 리턴받을 수 있습니다. @Transactional(readOnly = true) public interface UserDataRepo extends JpaRepository { public UserEntity findByE.. 2021. 5. 2. [Spring] QueryDsl 적용 JPA를 사용하면서 생각보다 query를 직접 작성해서 사용하는 경우가 많았습니다. 보통 JPA Repository에서 @Query를 활용해서 직접 쿼리를 작성하는데 아래 예시와 비슷하게 작성합니다. public interface TesetRepo extends JpaRepository { @Query("from Test where test= :test") List findFlights (@Param("test") String testString, ); } 지금까지는 @Query로 잘 사용하고 있었습니다. 그런데 잘 생각해보니 이럴거면 mybatis를 쓰는게 더 나은거 아닌가... 라는 생각과 함께 코드로 작성할 수 있는 방법이 없나 찾아보게 되었습니다. 찾아보니 querydsl이라는 방법이 있었고 적용.. 2021. 4. 21. 이전 1 2 다음 728x90