본문 바로가기

Spring

(17)
[Spring]Spring MVC 각 메서드 및 어노테이션 간단 정리 Spring MVC는 Spring Framework에서 제공하는 Servlet 기반의 웹 프레임워크이다.Spring MVC 역시 아래 두 패턴의 구현체 일뿐이다.MVC 패턴Front Controller 패턴1. Spring MVC의 핵심 구조 및 DispatcherServletSpring MVC란?Spring Framework가 제공하는 웹 프레임워크MVC 패턴 + Front Controller 패턴 구현체인증, 인가, 로깅 등 공통 처리 로직을 Front Controller(DispatcherServlet)에서 처리 가능DispatcherServletSpring MVC의 핵심 Servlet모든 HTTP 요청은 DispatcherServlet이 수신 후 적절한 컨트롤러로 분기관련 클래스클래스 역할WebM..
[Spring] IoC 간단정리 IoC (Inversion of Control, 제어의 역전) 란?객체 생성과 의존성 관리를 개발자가 아닌, 프레임워크가 대신하는 설계 원칙 일반적으로 우리가 객체를 생성하고 의존 객체를 주입하여 제어 흐름을 직접 작성하는 대신, 프레임워크가 대신 생성해주고 주입해주는 구조이다. 개발자는 그저 객체 간의 관계만 설정해주면 된다. 스프링 역시 이를 위한 프레임워크 중 하나이다.이게 무슨 말인가 싶었지만, 이해해보니 그리 어려운 말이 아니였다. 아래 코드를 보면,public static void main(String[] args) throws Exception { Steps steps = new Communication();}public class Communication implements Steps..
[Spring] 롬복 롬복 라이브러리를 사용하면 의존 관계를 주입할 때 더욱 편리하게 할 수 있다! 설정 방법1. build.gradle 에 설정 추가//lombok 설정 추가 시작configurations { compileOnly{ extendsFrom annotationProcessor }}//lombok 설정 추가 끝...dependencies { implementation 'org.springframework.boot:spring-boot-starter' //lombok 라이브러리 추가 시작 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok..
[Spring] Component Scan Component Scan 이란?설정 정보(AppConfig.class) 없이 자동으로 스프링 빈을 등록해준다. ※ 스프링 빈 등록 방법1. AppConfig 에 @Bean을 등록하여 의존 관계 주입2. 각 Impl 생성자에 @Autowired 를 이용하여 자동으로 의존 관계 주입 @ComponentScan은 탐색 위치에 @Component 어노테이션이 붙은 모든 클래스를 스프링 빈으로 등록해줌. AutoAppConfig.java@Configuration@ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class))public class AutoAp..
[Spring] 싱글톤 패턴 싱글톤 패턴이란?- 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴- 객체 인스턴스가 2개 이상 생성되는 것을 막아야함. (어떻게? -> private 생성자 이용) 싱글톤 패턴 예시)public class SingletonService { private static final SingletonService instance = new SingletonService(); public static SingletonService getInstance(){ return instance; } // private 생성자 이용해서 다른 곳에서 객체 생성되는 것 방지 private SingletonService(){ } public void logic(){..
[Spring] 스프링 빈 조회 및 출력 우선 스프링 컨테이너 객체를 생성.AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 1. 모든 빈 조회String[] beanDefinitionNames = ac.getBeanDefinitionNames();for(String beanDefinitionName : beanDefinitionNames) { Object bean = ac.getBean(beanDefinitionName);}getBeanDefinitionNemas() : 컨테이너로 등록된 모든 빈 값들이 배열 형태로 반환getBean() : 반환된 값들을 이름을 이용해서 조회 2. 어플리케이션 빈 조회 및 출력String..
[Spring] Spring Container 스프링 컨테이너(Spring Container)스프링 컨테이너는 스프링 프레임워크의 핵심 컴포넌트이다.스프링 컨테이너는 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공한다.스프링에서는 자바 객체를 빈(Bean)이라 한다. 즉, 스프링 컨테이너는 내부에 존재하는 빈의 생명 주기를 관리(빈의 생성, 관리, 제거)하며, 생성된 빈에게 추가적인 기능을 제공한다. 스프링 컨테이너 종류스프링 컨테이너는 BeanFactory와, ApplicationContext 두 종류의 인터페이스 로 구현되어 있다.Beanfactory 를 직접 사용하는 경우는 거의 없으므로 일반적으로 ApplicationContext를 스프링 컨테이너라 한다.  AnnotationConfigApplicationCo..
[Spring] Spring으로 전환하기 AppConfig Spring 기반으로 변경기존 AppConfig.javapublic class AppConfig { public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); } public MemberRepository memberRepository() { return new MemoryMemberRepository(); } public OrderService orderService(){ return new OrderServiceImpl(memberRepository(), discountPolicy()); } public Disc..