Java190 Filter 와 interceptor, AOP 차이와 용도 이번 면접에서 아직 java에 대해서 정확하게 모르는 구나...! 라고 느꼈고java, spring 에 대해서 다시 공부해야겠다고, 생각했습니다 😭그래서 정리해보는 Filter와 interceptor 그리고 AOP종류실행시점FilterDispatcher Servlet에 요청이 전달되기 전/후 실행InterceptorServlet이 Controller mapping method를 호출하기 전/후 실행AOPtarget joinPoint(method)가 실행되기 전,후,자유롭게 호출Filter웹 어플리케이션에 전반적으로 사용되는 공통적인 기능을 구현할 때 적용할 수 있습니다.특히 공통적인 기능을 서블릿이 호출되지 전에 수행(전처리)하거나 서블릿이 호출되고 난 후에 수행(후처리)시 사용. 필터를 사용하면 클라.. 2024. 2. 22. MyBatis로 대댓글 구현 배웠던 내용을 다시 한 번 정리해보는 글입니다 :) 코드는 답글을 작성할 수 있는 코드인데, 대댓글로도 구현이 가능할 것 같습니다. *팀프로젝트 파티쉐어의 partyboard를 참고로 게시글을 작성합니다. ERD: 게시글 작성 * Service @Transactional @Override public void regist(PartyBoardVO board) throws Exception { dao.register(board); // origin column 값을 등록된 게시글 번호로 수정 dao.updateOrigin(); } * DAO // 게시글 작성 @Insert("INSERT INTO partyboard(category,pnum,title,content,writer,mnum) " + "VALUES.. 2024. 2. 19. 정렬할때 쓰기 좋은 메소드 List 정렬 시 오름차순 정렬 Collections.sort(정렬할 리스트); 내림차순 정렬 Collections.sort(정렬할 리스트, Comparator.reverseOrder()); 순서 뒤집기 Collections.reverse(뒤집을 리스트); 배열은 Arrays.sort() 를 사용해준다. 2024. 2. 15. SpringDataJPA - EntityGraph, fetch join 간단하게 하기 fetch join을 SpringDataJPA에서는 @EntityGraph 어노테이션을 통해 간단하게 할 수 있다. // 한방쿼리로 들고 오는 fetch join@Query("select m from Member m left join fetch m.team")List findMemberFetchJoin();위의 fetch join 메서드를 EntityGraph를 사용하면 아래와 같이 바꿀 수 있다. EntityGraph를 이용하면 메서드 이름으로 쿼리 생성 + 패치조인처럼 쓸 수 있음@Override@EntityGraph(attributePaths = {"team"})List findAll();jpql 대신 @EntityGraph 어노테이션을 사용한다. attributePaths에 fetch join할 .. 2024. 1. 10. SpringDataJPA - 벌크성 수정 쿼리 Dirty Checking으로 여러 건 수정시 건마다 쿼리 발생함.쿼리 한 번으로 쫙 다 수정하는 건 JPA에서는 벌크성 수정쿼리라고 함벌크성 수정 쿼리를 이용하면 한 번의 쿼리로 대량의 데이터를 수정할 수 있다. @Modifying 어노테이션 사용Repository 수정 메서드에 @Modifying 을 붙여준다(안붙이면 에러 발생)// 회원의 나이를 변경하는 벌크성 쿼리// age 이상인 경우 1살 추가@Modifying //Modifying이 있어야 JPA의 executeUpdate 호출함@Query("update Member m set m.age = m.age + 1 where m.age >= :age")int bulkAgePlus(@Param("age") int age); test 코드 예제)@.. 2024. 1. 10. SpringDataJPA - 페이징을 쉽게 하는 법 Page 객체Repository 인터페이스에 Page 메서드 이름(Pageable 변수이름)을 작성한다.public interface MemberRepository extends JpaRepository { // 페이징 Page findByAge(int age, Pageable pageable); SpringDataJPA로 페이징 처리를 하면 페이징 계산을 할 필요가 없다. 이미 구현되어있다,. 메서드 호출 시 Pageable 구현체(PageRequest)를 매개변수로 넣어준다.*Page 인덱스가 1이 아니라 0부터 시작함. 유의 아래는 test 코드이다.int age = 10;// SPRING DATA JPA는 page index가 1이 아니라 0부터 시작한다 (PageRequest = Pa.. 2024. 1. 10. 이전 1 2 3 4 5 6 7 8 ··· 32 다음