본문 바로가기

springboot5

[TIL] 240123 최종 프로젝트: 키워드 기반 상품 검색 상품 검색 전체 상품의 이름과 상품 설명 중 사용자가 입력한 문자열이 있으면 다 반환한다. 상품검색 * 키워드를 기반으로 상품을 검색합니다. 페이지네이션과 정렬 기능을 제공합니다. * @param keyword 검색할 키워드 * @param pageable 페이지네이션 정보 * @return 검색 결과와 상태 정보를 담은 ApiResponse ProductService // 상품 검색 public Page getProductsBySearch(String keyword, Pageable pageable) { if (!StringUtils.hasText(keyword)) { throw new ApiException("검색어를 입력해주세요.", HttpStatus.BAD_REQUEST); } Page prod.. 2024. 1. 23.
[TIL] 231124 Spring Security 로그인 Spring Security 로그인 Spring Security 내부의 AuthenticationManager과 UserDetailsService를 통해 DB와 소통 User name을 UserDetailsService로 전달 -> DB에서 usernmae으로 회원정보 조회 -> 성공시 UserDetails(회원상세정보) 생성 Username, password일치 시 로그인 성공 -> 세션 생성 UserDetailsServiceImpl @Service public class UserDetailsServiceImpl implements UserDetailsService { Private final UserRepository userRepository . . . } @Service 어노테이션 implemen.. 2023. 11. 24.
[TIL] 231123 Spring Filter, Spring Security 프레임워크 Filter Client로부터 오는 요청과 응답에 대해 최초/최종 단계에 위치 요청과 응답시 정보를 변경하거나 부가적인 기능 가능 주로 보안처리나 로깅 등에 사용 인증, 인가와 관련된 로직 처리 (비즈니스 로직과 분리하여 관리 가능) Filter 사용법 @Order(1) : 필터 순서 지정 Implements Filter 로 필터라고 선언 public class Logging Filter implements Filter{ } implements Filter @Override public void doFilter(~~)~~ AuthFilter : 인증 인가 필터 만들기 Repository와 JwtUtil 가져오기 if (StringUtils.hasText(url) && (url.startsWith("/ap.. 2023. 11. 23.
[TIL] 231121 Spring 회원가입 구현 PK, FK 연결할때 cascade cascade = CascadeType.REMOVE 삭제될때 같이 삭제되도록 설정 passwordEncoder 암호화된 비밀번호 확인 if(!passwordEncoder.matches(“사용자가 입력한 비밀번호’, “디비에 저장된 비밀번호”)){ throw new IllegalAccessError(“비밀번호가 일치하지 않습니다.”); } 디비에 암호화되어 저장된 비번을 사용자 비번 그대로와 비교하여 같은지 확인하여줌 matches( 비번, 저장된 비번) ❓추가 공부할거!!!!질문❓ 어떨땐 NoArgsConstructor / All / Required ?? => 생성자 없을때 No => Required: final 붙어있는 것들 파라미터로 넣어서 생성자 만들때? Serv.. 2023. 11. 22.
[TIL] 231109 Spring 숙련주차 Entity 연관 관계 1:1 1:N N:1 관계 1:1 관계 - 단방향 @OneToOne 외래키의 주인을 직접 설정 음식과 고객이 1:1의 경우 주인은 @JoinColumn 사용 음식 (외래키의 주인) @Entity @Table(name = "food") public class Food { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private double price; @OneToOne @JoinColumn(name = "user_id") private User user; } 고객 @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = .. 2023. 11. 9.