Programming/Spring
-
AOP 용어 정리Programming/Spring 2022. 9. 19. 21:28
AOP 용어 정리 이 용어들은 Spring AOP에 국한되지 않음 Aspect 여러 클래스를 횡단하는 관심사를 모듈화한 것. 스프링 AOP에서 Aspect는 일반적인 클래스에 @Aspect 를 통해 구현된다. Join point Advice가 적용될 수 있는 위치, 프로그램 실행 동안의 한 지점을 뜻한다. 예를들어, 메서드의 실행이나 예외 핸들링 같은 부분이다. Spring AOP에서 Join point는 항상 메서드의 실행을 나타낸다. Target object에서 구현한 인터페이스의 모든 메서드는 Join point가 된다. Advice 특정한 Join point 에서 Aspect에 의해 취해지는 행동을 뜻한다. 즉, 타깃에게 제공할 부가기능을 담은 모듈이다. 다양한 advice 타입이 있는데, 핵심적..
-
@Transactional의 롤백Programming/Spring 2022. 5. 18. 19:37
@Transactional 은 메서드 단위의 비즈니스 로직에서 쿼리가 실행된 뒤 예외가 발생했을 때 롤백 해주는 역할을 수행한다. RuntimeException을 상속한 예외에 대해서 롤백을 해준다는 배경지식만 있던 터라 미션에서 사용하고 있는 JdbcTemplate 은 어떻게 롤백이 진행되는 것인지 궁금하게 되었다. @Transactional 에서의 JdbcTemplate 쿼리 실행은 어떻게 롤백되지? @Transactional 은 기본적으로 rollbackFor 의 옵션이 RuntimeException.class 와 Error.class 로 설정 되어있다. JdbcTemplate 에서 예외가 터지면 SQLException 이 발생하는 줄 알았지만, JdbcTemplate의 쿼리 실행 메서드를 들어가보..
-
@Configuration이 붙지 않은 클래스의 메서드에 @Bean을 붙이면 어떻게 될까?Programming/Spring 2022. 5. 18. 14:40
Spring에서 Container에 Bean을 등록하는 방법중 하나로 다음과 같이 Java Config 을 이용하는 방법이 있다. @Configuration public class AuthenticationPrincipalConfig { @Bean public AuthService authService() { return new AuthService(); } } @Configure 은 해당 클래스가 빈 정의를 위한 목적이라는 것을 표시해주는 목적으로 사용된다. 그런데, 다음과 같이 @Configuration 없이 @Bean 만 존재한다면 어떻게 될까? public class AuthenticationPrincipalConfig { @Bean public AuthService authService() { ..
-
DI(Dependency Injection)의 종류와 장단점Programming/Spring 2022. 4. 26. 01:01
필드 주입 장점 의존성 주입하기가 쉬움 단점 외부에서 접근이 불가능하기 때문에 테스트시 객체를 수정할 수 없음 final 키워드를 붙이기 못하기 때문에 객체의 불변을 보장하지 못함 DI 프레임워크가 존재해야만 가능한 방식이기 때문에, 프레임워크에 의존적임 SRP 위반 Setter 주입 장점 의존성이 선택적으로 필요한 경우에 사용 가능 의존성이 변경될 가능성이 있는 경우에 사용 가능 단점 final 키워드를 붙이기 못하기 때문에 객체의 불변을 보장하지 못함 구현체를 주입해주지 않아도 생성이 가능해지는데, 이때 메서드를 호출하면 NullPointerException이 발생하게 됨. 즉, 주입이 필요한 객체가 주입되지 않아도 객체를 생성할 수 있게 된다는 것이 문제 생성자 주입 장점 의존 객체 주입 없이는 객..