본문 바로가기

반응형

Spring

(31)
Environment - 프로파일 ApplicationContext extends EnvironmentCapable Profile Bean 들의 그룹, 환경: 각각의 환경 혹은 특정한 환경의 Bean을 사용해야하는 경우 Alpha, Beta 등 환경들의 구분을 위함 테스트 환경에서 A라는 Bean 사용, 배포 환경에서 B라는 Bean을 사용하고 싶을 경우 해당 Bean이 모니터링 용도라서 테스트할 때는 필요가 없고, 배포할 때만 등록이 되면 되는 경우 getEnvironment Environement의 역할은 활성화 할 프로파일 확인 및 설정 environment.getDefaultProfiles() - 항상 적용이 되는 Bean들의 목록 (따로 설정을 해두지 않은 Bean) Profile 정의하기 클래스에 정의하기 @Configurat..
@Component와 @ComponentScan @ComponentScan ComponentScan을 붙이고 있는 Configuration 부터 해당 Package를 Scan 진행 함, 그렇다면 다른 Package는 어떻게? Bean 주입의 문제가 생긴다면 ComponentScan의 위치를 잘 따져 봐야 함 basePackage: 문자열을 통해 basePackage를 선언(Type Safe하지 못한게 단점) basePackageClasses: 클래스 기준으로 ComponentScan을 시작 해줌 excludeFilters TypeExcludeFilter AutoConfigurationExcludeFilter ComponentScan의 주요 기능 스캔 위치 설정 Filter: 어떤 Annotation을 스캔 할 지 또는 하지 않을 지 Functional..
@Autowired 생성자 주입 방식 위와 같이 BookService에서 생성자 주입은 Bean을 만들다가 그 Bean에 필요한 다른 의존성이었던, BookRepository를 못찾아서, 그 해당하는 빈이 없어서 빌드에 실패합니다. 그리고 에러 코드를 확인하면, BookRepository를 Bean으로 등록하라는 Action을 확인 할 수 있습니다. Setter 주입 방식 위의 상황과 동일하게 Annotation Bean을 등록하지 않은 BookRepository가 있을 경우, BookService에서 Setter로 BookRepository를 등록 해주었을 때 동일하게 에러가 발생합니다. 그런데 생각을 해봤을 때, 위의 생성자 주입 방식은 사실 Bean을 만들다가 해당하는 Bean을 못찾아서 에러가 났다는 것을 유추할 수..
ApplicationContext와 다양한 빈 설정 방법 스프링 IoC 컨테이너의 역할 빈 인스턴스 생성 의존 관계 설정 빈 제공 ApplicationContext ClassPathXmlApplicationContext (XML) property에 추가해서 ref에 입히면 된다. name은 Setter에서 가져왔고, ref는 다른 bean의 id 값을 참조해서 가져온다. 위와 같이 ClassPathXmlApplicationContext에서 사용하는 configLocation은 기존에 만들어줬던 Bean 설정 xml 파일의 경로를 설정해준다. 그리고 ApplicationContext에서 꺼내 온 다음 context로 Bean들을 getBean으로 꺼내서 사용할 수 있다. AnnotationConfigApplicationContext (Java) 위와 같이 bas..
스프링 IoC 컨테이너와 빈 Inversion of Control: 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 ​의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법​​을 말 함. 스프링 IoC 컨테이너 BeanFactory: https://docs.spring.io/spring-framework/docs/5.0.8.RELEASE/javadoc-api/org/springframework/beans/factory/BeanFactory.html BeanFactory (Spring Framework 5.0.8.RELEASE API) The root interface for accessing a Spring bean container. This is the basic clie..
Dispatcher-servlet.xml Dispatcher-Servlet(Dispatcher 서블릿)의 개념 Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을 프레젠테이션 계층의 제일앞에 둬서 중앙집중식으로 처리해주는 프론트 컨트롤러(Front Controller) 이것을 설명해주자면, 클라이언트로부터 어떠한 요청이 오면 Tomcat(톰캣)과 같은 서블릿컨테이너가 요청을 받는데, 이때 제일 앞에서 서버로 들어오는 모든 요청을 처리하는 *프론트 컨트롤러를 Spring에서 정의하였고, 이를 Dispatcher-Servlet이라고 합니다. 그래서 공통처리 작업을 Dispatcher 서블릿이 처리한 후, 적절한 세부 컨트롤러로 작업을 위임해줍니다. 물론 Dispatcher-Servlet이 처리하는 url 패턴을 지정해주..
Spring MVC란 Dispatcher - Front Controller Library 사용자 요청을 Controller에게 전달하고, Controller의 리턴 결과물을 View에 전달. 사용자 전달 입력 값을 모델화해서 Controller에 전달해준다. 그리고 Controller는 리턴만 하면 된다. 그러면 Controller에서는 Servlet 라이브러리를 사용할 필요가 없어진다. -> 결합력이 낮아진다.
Spring MVC Tomcat Tomcat Configuration - web.xml - Spring Dispatcher: Front Controller 공통 모듈 Spring Web Spring Configuration - Servlet - Service - Scurity - Mybatis -> XML, Annotation Configuration Spring Boot Starter Configuration - application.properties OR YAML

반응형