본문 바로가기

공부/Spring

스프링 - DI 2 스프링 IoC/DI - 제어의 역전/의존성 주입 02 의존성 주입 or 인젝션(Injection) : 어떤 클래스가 필요로 하는 컴포넌트를 외부에서 생성한 후, 내부에서 사용 가능하게 만들어 주는 과정 1. DI 컨테이너 : 의존성 주입을 자동으로 처리하는 기반 이전 예제에서의 타이어를 장착하려면 DI 컨테이너에서 꺼내서 장착하면 된다. ApplicationContext context = ...; // 스프링 DI 컨테이너 Tire tire = context.getBean(KoreaTire.class); sequenceDiagram 인스턴스A->>+DI컨테이너: 취득 DI컨테이너->>+인스턴스B: 생성 인스턴스B-->>-DI컨테이너: . DI컨테이너->>-인스턴스A: 사용 DI 컨테이너에서 인스턴스를 관..
스프링 인터셉터 설정 스프링 MVC 인터셉터 설정 1. 설정 : spring-servlet.xml 2. 구현 : SoonInterceptor.java import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import lombok.extern.slf4j.Slf4j; @Slf4j public class SoonInterceptor extends HandlerInterceptorAdapter{ @..
스프링 트랜잭션 스프링 트랜잭션 1. 트랜잭션 관리자 스프링 트랜잭션 처리의 중심이 되는 인터페이스 = PlatformTransactionManager 스프링 프레임워크는 다양한 환경과 제품에 대응하는 PlatformTransactionManager의 구현 클래스를 제공한다. DataSourceTransactionManager : JDBC 및 마이바티스 등의 JDBC 기반 라이브러리로 데이터베이스에 접근하는 경우에 이용한다. HibernateTransactionManager : 하이버네이트를 이용해 데이터베이스에 접근하는 경우에 이용한다. JpaTransactionManager : JPA로 데이터베이스에 접근하는 경우에 이용한다. 트랜잭션 관리자 정의 PlatformTransactionManager의 빈을 정의한다. 트..
스프링 - DI 스프링 IoC/DI - 제어의 역전/의존성 주입 01 프로그래임에서 의존성이란? 예제 01 : 의존관계를 직접 해결 의사 코드 운전자가 자동차를 생산한다. 자동차는 내부적으로 타이어를 생산한다. 자바로 표현 new Car(); Car 객체 생성자에서 new Tire(); 그리고 의존성을 단순하게 정의하면 다음과 같다 의존성은 new 다. new를 실행하는 Car와 Tire 사이에서 Car가 tire에 의존한다. 전체가 부분에 의존한다. sequenceDiagram Driver->>+Car: 1. 자동차 생산 Car->>+Tire: 2. 타이어 생산 Tire->>+KoreaTire: 3. 타이어 생산 위임 KoreaTire-->>-Tire: . Tire-->>-Car: . Car-->>-Driver: . ..
스프링부트 아파치 mod_jk 연동하기 1. 설정값 (application.yml) tomcat: ajp: protocol: AJP/1.3 port: 18009 2. 클래스 생성 (ContainerConfig.java) @Configuration public class ContainerConfig { @Value("${tomcat.ajp.protocol}") String ajpProtocol; @Value("${tomcat.ajp.port}") int ajpPort; @Bean public ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(); tomcat.addAdditionalTo..
[Boot] JPA 네이밍 전략 JPA & Hibernate 네이밍 전략 SpringPhysicalNamingStrategy(Default) => camel case를 underscore 형태로 변경 PhysicalNamingStrategyStandardImpl => 변수 이름을 그대로 사용 application.yml 추가 spring: profiles: dev jpa: hibernate: naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 에러 : 2019-03-02 14:54:31.281 ERROR 3541 --- [nio-9090-exec-4] o.h.engine.jdbc.spi.SqlExceptionHelper ..
[Boot] 의존 설정 의존 설정 spring-boot-starter : 스프링 부트를 시작하는 기본적인 설정이 담겨 있는 스타터 spring-boot-starter-tomcat : 내장 톰캣을 사용하기 위한 스타터] hibernate-validator : 어노테이션 기반의 표준화된 제약 조건 및 유효성 검사 규칙을 표현하는 라이브러리 spring-boot-starter-json : jackson 라이브러리를 지원해주는 스타터. JSON 데이터형의 파싱, 데이터 바인딩 함수 등을 제공함 spring-web : HTTP Integration, Servlet filter, Spring HTTP invoker 및 HTTP코어를 포함시킨 라이브러리 spring-webmvc : request를 전달하는 MVC로 디자인된 Dispatch..
[Boot] 스프링 부트 배치 스프링 부트 배치 처음 배우는 스프링 부트2 참고 1. 배경 스프링 본부인 피보탈과 컨설팅 회사인 엑센츄어가 공동으로 개발 2. 이해 시나리오 읽기(read) : 데이터 저장소에서 특정 데이터 레코드를 읽음 처리(processing) : 원하는 방식으로 데이터를 가공/처리함 쓰기(write) : 수정된 데이터를 다시 저장소에 저장 관계 Job - Step : 1 : M Step - ItemReader, ItemProcessor, ItemWriter : 1 : 1 하나의 큰 일감(Job)에 여러 단계(Step)를 사용함 2.1 Job Job은 배치 처리 과정을 하나의 단위로 만들어 표현한 객체 전체 배치 처리에 있어 항상 최상단 계층에 있음 Job 객체는 여러 Step 인스턴스를 포함하는 컨테이너 JobI..