일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스프링 핵심 원리
- 자바
- transaction
- 그리디
- http
- java
- Servlet
- QueryDSL
- pointcut
- 인프런
- springdatajpa
- JDBC
- 스프링
- 알고리즘
- 김영한
- db
- Exception
- JPQL
- spring
- jpa
- kotlin
- Android
- SpringBoot
- 백준
- Proxy
- 스프링 핵심 기능
- AOP
- Greedy
- Spring Boot
- Thymeleaf
- Today
- Total
목록빈 후처리기 (3)
개발자되기 프로젝트
1. build.gradle implementation 'org.springframework.boot:spring-boot-starter-aop' 이 라이브러리를 추가하면 aspectjweaver 라는 aspectJ 관련 라이브러리를 등록하고, 스프링 부트가 AOP 관련 클래스를 자동으로 스프링 빈에 등록한다. 스프링 부트가 없던 시절에는 @EnableAspectJAutoProxy 를 직접 사용해야 했는데, 이 부분을 스프링 부트가 자동으로 처리해준다. 스프링 부트가 활성화하는 빈은 AopAutoConfiguration 를 참고 2. 자동 프록시 생성기 - AutoProxyCreator 앞서 이야기한 스프링 부트 자동 설정으로 AnnotationAwareAspectJAutoProxyCreator 라는 빈..
빈 후처리기를 사용해서 실제 객체 대신 프록시를 스프링 빈으로 등록해보자. 이렇게 하면 수동으로 등록하는 빈은 물론이고, 컴포넌트 스캔을 사용하는 빈까지 모두 프록시를 적용할 수 있다. 더 나아가서 설정 파일에 있는 수 많은 프록시 생성 코드도 한번에 제거할 수 있다. 1. PackageLogTracePostProcessor @Slf4j public class PackageLogTracePostProcessor implements BeanPostProcessor { //특정 패키지 하위의 빈이 대상 private final String basePackage; private final Advisor advisor; public PackageLogTracePostProcessor(String basePack..
1. 일반적인 스프링 빈 등록 public class BasicTest { @Test void basicConfig (){ //스프링 컨테이너 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BasicConfig.class); //A는 빈으로 등록됨. A a = applicationContext.getBean("beanA", A.class); a.helloA(); //B는 스프링 빈으로 등록되지 않음. Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> applicationContext.getBean(B.class)); } @Slf4j @Conf..