서론 Spring을 사용하여 개발을 하다보면 @Transactional이라는 어노테이션을 많이 보고, 많이 사용하곤 합니다. 이때 클래스 레벨이나 메서드 레벨에 @Transactional 어노테이션이 선언되어 있으면 Proxy로 수행이 되는구나 생각만하고 지나치는 경우가 있습니다. 하지만 이러한 Proxy로 인해 AOP Self Invocation과 같은 겪고 싶지 않은 여러 경험들을 하게 될 수 있습니다. 그렇기 때문에 우리는 스프링에서 Proxy가 어떻게 동작하는지 알아야할 필요성이 있습니다. JDK Dynamic Proxy JDK Dynamic Proxy는 java.lang.reflect 패키지에 속한 Proxy 클래스를 사용합니다. 따라서 리플랙션을 사용하여 동적으로 프록시를 생성해주기 때문에 이..
아래의 코드는 @Autowired와 @Qualifier 어노테이션의 차이점을 알아보기 위한 코드입니다. Exam Interface public interface Exam { int total(); double avg(); } KDGExam Class public class KDGExam implements Exam{ private int kor; private int eng; private int math; ... 세터들 존재한다는 가정 @Override public int total(){ return kor + eng + math; } @Override public double avg(){ return total() / 3; } } ExamPrint Class public class ExamPrint ..
싱글턴 범위 빈과 싱글턴 범위 의존성은 ApplicationContext 인스턴스가 생성될 때 함께 생성됩니다. 반면 프로토타입 범위 빈과 프로토타입 범위 의존성은 프로토타입 범위 빈을 얻기 위해 ApplicationContext의 getBean 매서드를 호출할 때마다 생성됩니다. 이때 싱글턴 범위의 빈이 프로토타입 범위의 빈을 필요로 한 경우와 그 반대의 경우가 발생할 때 어떻게 해야 할까요? 예제를 보면서 살펴보겠습니다. Case 01 - 싱글턴 범위 빈의 의존성 service 빈은 싱글턴 빈과 프로토타입의 빈을 생성자 인자로 가지고 있습니다. 실행 코드에서 service 빈을 가져오게 된다면 details 빈을 생성하지 않아서 예외가 발생하게 됩니다. 스프링 컨테이너는 싱글턴 범위 객체를 한 번만 ..
spring 설정 xml에 다음과 같은 구문을 추가합니다. 1. 외부 설정 프로퍼티 // jdbc.properties 파일 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://dbserver:3306/test jdbc.username=test jdbc.password=1234 // files.properties 파일 #### File Path #### file.path=C:\\ 2. PropertyPlaceholderConfigurer 클래스 사용하는 경우 주의점은 두개 이상의 PropertyPlaceholderConfigurer 빈을 설정하면 안된다는 점입니다. 이 경우 첫번째의 PropertyPlaceholderConfigurer의 설정이 적용되며, 두..
- Total
- Today
- Yesterday
- microkernel architecture
- pipe and filter architecture
- spring boot redis 대기열 구현
- transactional outbox pattern spring boot
- 레이어드 아키텍처란
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot redisson destributed lock
- spring boot redisson sorted set
- spring boot poi excel download
- spring boot 엑셀 다운로드
- 람다 표현식
- spring boot excel download paging
- service based architecture
- redis sorted set
- polling publisher spring boot
- @ControllerAdvice
- transactional outbox pattern
- spring boot redisson 분산락 구현
- 공간 기반 아키텍처
- redis 대기열 구현
- spring boot excel download oom
- java ThreadLocal
- JDK Dynamic Proxy와 CGLIB의 차이
- space based architecture
- java userThread와 DaemonThread
- redis sorted set으로 대기열 구현
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- pipeline architecture
- 서비스 기반 아키텍처
- 자바 백엔드 개발자 추천 도서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |