일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 혼공SQL
- AWS RDS
- 자바스터디
- 이펙티브 자바
- 스프링부트와AWS로혼자구현하는웹서비스
- 인덱스
- mysql
- 자바
- 자료구조
- react
- SQL쿡북
- java
- vue.js
- 알고리즘분석
- 이팩티브 자바
- 자바예외
- 도메인 주도 개발 시작하기
- 네트워크
- 기술면접
- AWS
- aop
- CleanCode
- 인프런김영한
- 클린코드
- jpa
- MariaDB
- 알고리즘
- 인프런백기선
- DDD
- 이펙티브자바
- Today
- Total
목록SpringBoot (10)
기록이 힘이다.
CGLIB 구체 클래스 기반 프록시 문제점 -대상 클래스에 기본 생성자 필수 -생성자 2번 호출 문제 -final 키워드 클래스, 메서드 사용 불가 스프링 3.2, CGLIB를 스프링 내부에 함께 패키징 CGLIB를 사용하려면 CGLIB 라이브러리가 별도로 필요했다. 스프링은 CGLIB 라이브러리를 스프링 내부에 함께 패키징해서 별도의 라이브러리 추가 없이 CGLIB를 사용할 수 있게 되었다. 'CGLIB spring-core org.springframework' CGLIB 기본 생성자 필수 문제 해결 스프링 4.0부터 CGLIB의 기본 생성자가 필수인 문제가 해결되었다. 'objenesis'라는 특별한 라이브러리를 사용해서 기본 생성자 없이 객체 생성이 가능하다. 참고로 이 라이브러리는 생성자 호출 없..
2.5부터 순환참조가 금지되었다. 수정자 주입도 마찬가지
@Around만 있으면 되는데 왜? 이렇게 제약을 두는가? 제약은 실수를 미연에 방지한다. 일종에 가이드 역할을 한다. 만약 @Around를 사용했는데, 중간에 다른 개발자가 해당 코드(Object result = joinPoint.proceed();)를 수정해서 후출하지 않았다면? 큰 장애가 발생했을 것이다. 처음부터 @Before 를 사용했다면 이런 문제 자체가 발생하지 않는다. 제약 덕분에 역할이 명확해진다. 다른 개발자도 이 코드를 보고 고민해야 하는 범위가 줄어들고 코드의 의도도 파악하기 쉽다. @Around("hello.aop.order.aop.Pointcuts.orderAndService()") public Object doTransaction(ProceedingJoinPoint joinPo..
1. @Bean을 사용해서 직접 등록 2. @Component 컴포넌트 스탠을 사용해서 자동 등록 3. @Import 주로 설정 파일을 추가할 때 사용(@Configuration)
스프링이 제공하는 AOP는프록시를 사용한다. 따라서프록시를 통해메서드를 실행하는시점에만 AOP가 적용된다. AspectJ를 사용하면앞서설명한것처럼더 복잡하고 더다양한 기능을사용할 수있다. > 그렇다면 스프링 AOP 보다는 더기능이많은 AspectJ를직접 사용해서 AOP를 적용하는것이더 좋지 않을까? > AspectJ를 사용하려면공부할내용도 많고, 자바관련 설정(특별한컴파일러, AspectJ 전용 문법, 자바 실행옵션)도복잡하다. 반면에스프링 AOP는 별도의추가 자바설정 없이스프링만있으면 편리하게 AOP 를사용할 수있다. 실무에서는스프링이 제공하는 AOP 기능만 사용해도대부문의 문제를해결할수 있다. 따라서스프링 AOP가제공하는기능을학습하는것에집중하자.
AOP의 대표적인 구현으로 AspectJ 프레임워크가 있다. 물론 스프링도 AOP를 지원하지만 대부분 AspectJ의 문법을 차용하고, AspectJ가 제공하는 기능의 일부만 제공한다. - 자바 프로그래밍 언어에 대한 완벽한 관점 지향 확장 -횡단 관심사의 깔끔한 모듈화 -오류 검사 및 처리 -동기화 -성능 최적화(캐싱) -모니터링 및 로깅
Deprecated. Use a SecurityFilterChain Bean to configure HttpSecurity or a WebSecurityCustomizer Bean to configure WebSecurity @RequiredArgsConstructor @EnableWebSecurity //spring security 설정들을 활성화 public class SecurityConfig{ private final CustomOAuth2UserService customOAuth2UserService; @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf().disab..