Develop Artifacts/Spring

Spring - 06. aop

@Transactional이 같은 클래스 내부 호출에서 동작하지 않는 이유 — AOP와 프록시@Servicepublic class OrderService { @Transactional public void placeOrder(Order order) { ... } // 트랜잭션 적용됨 public void bulkOrder(List orders) { for (Order order : orders) { placeOrder(order); // 내부 호출 — @Transactional이 동작 안 함! } }}placeOrder()에 @Transactional이 붙어 있지만, 같은 클래스 내부에서 호출하면 트랜잭션이 적용되지 않는다. 원인은..

Develop Artifacts/Java

Java - 17. annotation-reflection

Spring이 @Autowired를 보고 의존성을 주입하는 원리 — 애너테이션과 리플렉션@Autowiredprivate UserService userService;이 코드를 실행하면 Spring은 어떻게 UserService 타입의 bean을 찾아서 userService 필드에 주입하는가? 정답은 리플렉션(reflection)이다 — 런타임에 클래스의 필드, 메서드, 애너테이션을 검사하고 조작하는 메커니즘. (Reflection API)리플렉션은 프레임워크(Spring, JUnit, Hibernate, Jackson)의 근간이지만, 잘못 쓰면 성능 저하, 캡슐화 파괴, 유지보수성 악화를 초래한다. 이 글은 애너테이션 정의, 리플렉션 API, 동적 프록시, 그리고 언제 리플렉션을 써야 하는지를 풀어간다.애..

Archive

'Proxy' 2

Develop Artifacts/Spring

Spring - 06. aop

@Transactional이 같은 클래스 내부 호출에서 동작하지 않는 이유 — AOP와 프록시@Servicepublic class OrderService { @Transactional public void placeOrder(Order order) { ... } // 트랜잭션 적용됨 public void bulkOrder(List orders) { for (Order order : orders) { placeOrder(order); // 내부 호출 — @Transactional이 동작 안 함! } }}placeOrder()에 @Transactional이 붙어 있지만, 같은 클래스 내부에서 호출하면 트랜잭션이 적용되지 않는다. 원인은..

댓글
Develop Artifacts/Java

Java - 17. annotation-reflection

Spring이 @Autowired를 보고 의존성을 주입하는 원리 — 애너테이션과 리플렉션@Autowiredprivate UserService userService;이 코드를 실행하면 Spring은 어떻게 UserService 타입의 bean을 찾아서 userService 필드에 주입하는가? 정답은 리플렉션(reflection)이다 — 런타임에 클래스의 필드, 메서드, 애너테이션을 검사하고 조작하는 메커니즘. (Reflection API)리플렉션은 프레임워크(Spring, JUnit, Hibernate, Jackson)의 근간이지만, 잘못 쓰면 성능 저하, 캡슐화 파괴, 유지보수성 악화를 초래한다. 이 글은 애너테이션 정의, 리플렉션 API, 동적 프록시, 그리고 언제 리플렉션을 써야 하는지를 풀어간다.애..

댓글

wall

방명록

방문 흔적을 남겨주세요. 질문이나 인사 모두 환영합니다.