본문 바로가기
반응형

spring9

[Spring] 스프링 핵심 원리 - 기본편 > 섹션 8. 빈 생명주기 콜백 인프런 김영한 강사님의 [스프링 핵심 원리 - 기본편] 섹션8. 빈 생명주기 콜백에 대한 요점 정리를 하였다. 목차 1.스프링 빈 이벤트 라이프 사이클 2.빈 생명주기 콜백 3가지 방법 1.스프링 빈 이벤트 라이프 사이클 스프링 빈의 이벤트 라이프 사이클은 다음과 같다. 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 데이터베이스 커넥션 풀이나, 네트워크 소켓의 경우, 애플리케이션 시작 시점에 필요한 연결을 하고 애플리케이션 종료 시점에 종료하는 작업이 필요하다. 이를 위해 객체의 초기화와 종료 작업인 빈 생명주기 콜백 3가지에 대해 알아보려한다. 2.빈 생명주기 콜백 3가지 방법 2-1. 인터페이스 InitializingBe.. 2024. 4. 12.
[Spring] 스프링 핵심 원리 - 기본편 > 섹션 6. 컴포넌트 스캔 인프런 김영한 강사님의 [스프링 핵심 원리 - 기본편] > 섹션6. 컴포넌트 스캔에 대한 요점 정리를 하였다. 메서드에 @Bean 적용을 해야 하는 경우가 너무 많아질 경우가 있다. @Bean 적용 없이 동일하게 스프링 빈으로 등록하고 싶을 경우, 클래스에 @Component를 적용하고 DI를 위해서 생성자에 @Autowired를 적용한다. 그리고 @ComponentScan을 적용한 클래스를 만들면 된다. @ComponentScan은 이름 그대로 @Component 어노테이션을 적용한 클래스를 스캔해서 스프링 빈으로 등록한다. @Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Conf.. 2024. 4. 11.
[Spring] 스프링 핵심 원리 - 기본편 > 섹션 5. 싱글톤 컨테이너 인프런 김영한 강사님의 [스프링 핵심 원리 - 기본편] > 섹션5. 싱글톤 컨테이너에 대한 요점 정리를 하였다. public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } ... } 스프링이 없이 순수한 DI 컨테이너인 AppConfig는 클라이언트가 memberServiceImpl을 요청할 때 마다 새로운 memberServiceImpl을 생성하고 반환한다.(-> 메모리 낭비 발생) 이유는 스프링이 없는 순수한 DI 컨테이너는 싱글톤을 보장해주지 않기 때문이다. 객체를 1개만 생성하고 공유하도록 설계하는 스프링 컨테이너를 사용하자. 스프링 컨테이너는 객체 .. 2024. 4. 10.
Spring - MultiValueMap<K, V>: Value가 List로 저장 Spring이 제공하는 MultiValueMap이 있다. Key에 대해서 Value를 List로 저장한다. Value에 List으로 저장하고 싶을 경우 아래와 같이 구현한다. MultiValueMap multiValueMap = useMultiValueMap(); System.out.println("multiValueMap = " + multiValueMap); Key: "학생1", Value: List classes로 구현한 경우이다. private static MultiValueMap useMultiValueMap() { MultiValueMap multiValueMap = new LinkedMultiValueMap(); List classes = new ArrayList(); classes.add(.. 2023. 1. 13.
Spring Boot: Spring 환경설정 Spring Boot는 웹 어플리케이션을 만들 때 이용하는 도구이다. start.spring.io 주소를 통해서 Spring Boot를 이용한다. Project, Language에 원하는 버전, 언어를 선택한다. Spring Boot 버전은 SNAPSHOT이 아닌 버전을 선택한다. SNAPSHOT은 완료버전이 아닌 중간단계 버전이라고 보면 된다. Project Metadata 또한 개발자의 선호에 맞게 이름을 설정하면 된다. Jar: Java Archive Java 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일 클라우드 사용할 계획이 있다면 선택한다. JRE 혹은 JDK 환경에서 JAR 파일을 실행시킬 수 있다. JAR 배포만으로 실행이 가능하다. Spring Boot는 내장 톰캣을 포함하.. 2022. 12. 21.
[REST API Client] Swagger doc 다른 서버 url 추가 - Java Spring REST API Client 개발 중에 Swagger doc으로 다른 서버에 request를 보내서 response를 받는 테스트를 해야할 때가 있었다. Swagger 테스트 중에 다른 서버를 추가하는 방법은 OpenApiConfig 클래스를 만들고 ArrayList에 request를 보내고자하는 서버 url(ip address, port) 추가하면 된다. @Configuration public class OpenApiConfig { @Bean public OpenAPI openAPiConfig() { ArrayList servers = new ArrayList(); servers.add(new Server().url("http://localhost:8080").description("Local Serv.. 2022. 12. 11.
What is DI(Dependency Injection), Why & How to use What DI(Dependency Injection): DI(Dependency Injection) is a core programming model supported by Spring Framework. Dependency is that one object uses another object. (depends on = uses) For example, if a QuestionController object uses a QuestionService object, The QuestionController object depends on the QuestionService object. public class QuestionController { private QuestionService questionSe.. 2022. 12. 9.
Dispatcher-Servlet(디스패처 서블릿) Dispatcher-Servlet이란(What): Dispatcher-Servlet은 Spring MVC에서 핵심이다. Dispatcher-Servlet은 클라이언트에서 들어오는 요청을 가장 먼저 처리하여 해당 컨트롤러에 전달한다. 프론트 컨트롤러(Front Controller)라고도 한다. Dispatcher-Servlet 사용하는 이유(Why): 디스패처 서블릿으로 인해 각 컨트롤러에 있는 공통 코드에 대해서 처리가 가능하다. 디스패처 서블릿 하나로 모든 클라이언트 요청을 받을 수 있기 때문 -> 들어오는 요청을 한 곳에서 다 받음 -> 편리함 디스패처 서블릿을 제외한 나머지 컨트롤러는 서블릿을 사용하지 않아도 되기 때문 Dispatcher-Servlet 사용하는 방법(How): 1. FrontCon.. 2022. 12. 8.

반응형
반응형