본문 바로가기

Java15

[Spring batch] Listener 종류와 작동 순서, Step 작동 순서 Listener 종류 각각 인터페이스를 구현받거나 간단하게 어노테이션을 사용하는 방식으로 listener를 설정할 수 있다. //////////////////////////////////////////////////////// //JobExecutionListener 인터페이스 구현 or 어노테이션 사용 @BeforeJob public void beforeJob(JobExecution stepExecution) { log.info(">>>Before Job"); } @AfterJob public void afterJob(JobExecution stepExecution) { log.info(">>>After Job"); } //////////////////////////////////////////////.. 2022. 8. 13.
[JPA/QueryDsl] 페이징에서의 N+1 해결 기록 상속관계로 이루어진 Item 엔티티, 이 Item 엔티티와 1 : N 관계를 지닌 Order 엔티티, 그리고 이 Order 엔티티를 페이징하다가(fetchResults()) 만난 N+1 문제를 해결해가는 과정에 대한 기록이다. 핵심 엔티티만 남겨 간략화하면 엔티티는 아래와 같다 Order 엔티티는 BasicItem과 SpecialItem을 가지고 있고 각각 1 : N 관계를 맺고 있다. @Entity(name = "TB_ORDER") @Table(name = "TB_ORDER") public class OrderEntity { @Id @Column(name = "ORDER_ID", nullable = false) @GeneratedValue(strategy = GenerationType.IDENTITY).. 2022. 5. 16.
[Spring Security] Servlet Filter 등록과 동작 순서 (1) Spring Security + JWT 스터디를 하다가 시작된 의문으로 파보게 된 Filter... 첫번째는 Security와는 약간 다른 얘기지만 Servlet Filter의 등록과 동작순서부터 알아봤다. 간단하게 Filter interface를 구현하여 Custom filter를 세개 만들었다. 아래와같이 ATestFilter, BTestFilter, DTestFilter를 만들고 @Component 어노테이션으로 간단하게 등록했다. @Component public class ATestFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain ch.. 2022. 1. 12.
[Mybatis] Select시 NullPointerException ... org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible... 평소처럼 Mybatis를 이용해 SELECT 했는데 아래와 같은 에러가 난다. ### SQL: SELECT SECT, WEATHER_VALUE, WEATHER_CODE, REG_DATE FROM TB_WEATHER WHERE SECT IN ('SKY', 'T3H') ### Cause: java.lang.NullPointerException at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java.. 2021. 1. 18.