java
-
[SpringBoot] Dependency Injection 순서에 대해서카테고리 없음 2022. 11. 22. 14:01
Spring Dependency Injection 순서에 대해서 Spring boot 에서 Bean 을 주입 받을 때 그 순서를 잘 모르고 있었는데, 이번 기회에 정리해 보자. Service 레이어에서 여러 서비스에 대한 디펜던시를 주입받는 상황을 가정하여 밑과 같은 테스트 프로젝트를 생성하였다. @Service public class MainService { private final ConstructorService constructorService; private SetterService setterService; @Autowired private AutowiredService autowiredService; public MainService(ConstructorService constructorSe..
-
@Transactional 태그 안에서 Exception Handling 시 유의 할 점개발 2021. 8. 27. 00:04
@Transactional 태그 안에서 Exception Handling 시 유의 할 점 컨텍스트 설명 1. 요구사항 로그인이 실패할 때마다 그 횟수를 세고, 틀린 횟수가 5가 될 경우 계정을 잠금처리 해주세요 2. 내 접근법 로그인 시 비밀번호가 틀렸을 경우 member table 의 특정 필드를 +1 해주고, 그 필드 값이 5와 같을 경우 Exception 을 던지자 3. 마주친 문제 기존 코드는 이랬다. @Service public class AuthService { @Transactional(propagation = Propagation.REQUIRES_NEW) public UserProj authenticate(String emailAddress, String password) { UserPro..
-
[JPA] Entity를 통해서 변경한 데이터를 DB는 어떻게 알아먹을까? → 영속성 관리개발 2021. 7. 28. 20:54
[JPA] Entity를 통해서 변경한 데이터를 DB는 어떻게 알아먹을까? → 영속성 관리 서버 코드 보고, QueryDsl 도 다루어 보면서 생긴 몇가지 궁금증을 해소해 주었던 지식을 기록 일단 궁금했던 점들 QueryDsl 을 작성할 줄 알고, 쓸 줄도 알겠어. 그런데 이 쿼리가 DB로 날라가는건 대체 어떤 시점이야? → 이 시점을 근본적으로 이해할 정도의 구조적 지식이 필요했다. 그 전에, JPA를 통해서 DB 테이블 정보를 바꿀 때는 member.setId(id) 이런 식으로 바꾼다. DB에 쿼리를 날린 것도 아니고, 트랜잭션을 따로 끝낸 적도 없는데 이게 어떻게 DB에 반영이 되는거야? → Dirty Checking! 엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저는 말 그대로 엔티티를 관리..