| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 스프링
- SQL
- 생성자 주입
- java
- db
- assertThrows
- Javascript
- 필드 주입
- springboot
- 스프링 부트 입문
- resultMap
- Effective Java
- jdbc
- spring
- mybatis
- 스프링 컨테이너
- JPA
- 스프링부트
- assertThat
- 싱글톤
- sqld
- DIP
- 스프링 빈
- 스프링 부트
- thymeleaf
- DI
- kafka
- 스프링 프레임워크
- @Configuration
- 스프링 부트 기본
- Today
- Total
목록Framework/Spring Framework (56)
선 조치 후 분석
스프링 핵심 원리와 핵심 기능 정리 스프링 핵심 원리 객체 지향 설계 다형성 - 역할과 구현의 분리 SOLID [OCP, DIP] DI 컨테이너 스프링 핵심 기능 스프링 컨테이너, 빈 싱글톤 컴포넌트 스캔 의존관계 자동 주입 빈 생명주기 콜백 빈 스코프
스코프와 프록시 +웹 스코프와 프록시 동작 원리 + CGLIB 이번에는 프록시 방식을 사용해보자. 1. MyLogger 수정 기존 코드 @Component @Scope(value="request") // 생존범위는 고객의 요청이 들어와서 나갈때까지다. public class MyLogger { 프록시 방식을 사용한 코드 @Component @Scope(value="request", proxyMode = ScopedProxyMode.TARGET_CLASS) // 생존범위는 고객의 요청이 들어와서 나갈때까지다. public class MyLogger { 여기가 핵심이다. @Scope(value="request", proxyMode = ScopedProxyMode.TARGET_CLASS) 코드처럼 수정하자. ..
스코프와 Provider + ObjectProvider 저번 정리 때, 스프링 애플리케이션을 실행시키면 오류가 발생했다. 스프링 애플리케이션을 실행하는 시점에 싱글톤 빈은 생성해서 주입이 가능하지만, request 스코프 빈은 아직 생성되지 않는다. 이 빈은 실제 고객의 요청이 와야 생성할 수 있다. 그렇다면 이런 문제점을 어떻게 해결할 수 있을까? 스코프와 Provider 첫 번째 해결방안은 앞서 배운 Provider를 사용하는 것이다. 간단히 ObjectProvider를 사용해보자. 1. Controller 수정 ObjectProvider 를 사용함으로써 원하는 MyLogger를 찾을 수 있는 객체를 주입받는다. @Controller @RequiredArgsConstructor public class..
request 스코프 예제 만들기 웹 스코프는 웹 환경에서만 동작하므로 web 환경이 동작하도록 라이브러리를 추가하자. build.gradle에 아래 코드를 적용하자. //web 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-web' 늘 말하지만, build.gradle에 추가하면, Gradle->Refresh Gradle Project를 눌러주자. 그리고 라이브러리를 확인해보면, spring-web과 관련된 기술들이 들어온 것을 확인할 수 있다. 이제 hello.core.CoreApplication의 main 메서드를 실행하면 웹 애플리케이션이 실행되는 것을 확인할 수 있다. 2022-04-12 22:19:26.834 INF..
웹 스코프 + session, request, application, websocket 지금까지 싱글톤과 프로토타입 스코프를 학습했다. 싱글톤은 스프링 컨테이너의 시작과 끝까지 함께하는 매우 긴 스코프이고, 프로토타입은 생성과 의존관계 주입, 그리고 초기화까지만 진행하는 특별한 스코프이다. 이번에는 웹 스코프에 대해서 알아보자. 웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작한다. 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료 시점까지 관리한다. 따라서 종료 메서드가 호출된다. 웹 스코프의 종류 request : HTTP 요청 하나가 들어오고 나갈 때까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리된다. session : HTTP Session과 동일한..
프로토타입 스코프 - 싱글톤 빈과 함께 사용 시 Provider로 문제 해결 + 의존관계 조회(탐색) + Dependency Lookup(DL) + ObjectFactory, ObjectProvider + JSR-330 Provider 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때마다 항상 새로운 프로토타입 빈을 생성할 수 있을까? 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때마다 스프링 컨테이너에 새로 요청하는 것이다. 저번 시간에 작성했던 ClientBean 내용만 아래처럼 바꾸면 사용은 가능하다. (하지만 무식한 방법이다.) static class ClientBean { @Autowired private ApplicationContext ac;..