[Spring] Auto-wiring
2022. 4. 25. 01:26
프로그래밍/Spring
Auto-wiring (의존 관계 자동 설정) 개념 Dependency Injection을 명시적으로 설정하지 않아도 container가 bean의 타입이나 이름을 이용하여 DI를 자동으로 수행하는 기능 XML 설정 방법 엘리먼트에 autowire 속성을 이용하여 자동 설정 방식 지정 모든 bean 객체들에 대해 특정 방식을 적용하려면 엘리먼트에 default-autowire 속성 이용 autowire 값 의미 no (default) auto-wiring을 수행하지 않음 byName property와 같은 이름 또는 id 값을 갖는 bean을 찾아 주입 (setter-based injection) byType property와 같은 타입을 갖는 bean을 찾아 주입 (setter-based injecti..
[Spring] DI - XML 기반 설정
2022. 4. 24. 17:34
프로그래밍/Spring
Spring Container 핵심 기능 자바 객체(bean)의 라이프 사이클 관리 Dependency Injection(DI) 종류 BeanFactory interface의 구현체 Bean 객체를 생성하고 DI를 실행하는 기본적인 기능 제공 ApplicationContext interface 및 그 sub-interface의 구현체 Anntation 기반 설정, Java code 기반 설정 다양한 부가 기능 추가 제공 Spring Container의 bean 생성 및 관리 BeanFactory interface org.springframework.beans.factory.BeanFactory Spring container에 대한 기본적인 API 정의 getBean(String name, Class re..
[Spring] Spring MVC(2)
2022. 4. 22. 05:04
프로그래밍/Spring
MVC Pattern Model: Business logic 실행, 데이터 처리, 결과 데이터 생성 View: User interface 생성(presentation logic 실행), 출력 화면 생성 Controller: Request 처리, request/response 데이터 전달 Spring MVC 주요 구성요소 DispatcherServlet: Client의 요청(request)을 받아 Contoller에게 전달. Controller의 처리 결과를 View에 전달하여 응답(response)을 생성하도록 함(front controller) HandlerMapping: Client의 요청 URL을 어떤 Controller가 처리할지를 결정 HandlerAdapter: DispatcherServlet..
[Spring] Spring MVC(1)
2022. 4. 17. 11:17
프로그래밍/Spring
스프링을 사용하는 이유 스프링이 지원하는 웹 MVC 프레임워크 때문이다. 스프링 MVC의 설정 방법만 익혀두면 웹 개발에 필요한 다양한 기능을 구현할 수 있게 된다. 프로젝트 생성 웹 어플리케이션을 개발을 위한 메이븐/그레이들 프로젝트는 웹을 위한 디렉토리 구조가 추가된다. src/main/java src/main/webapp src/main/webapp/WEB-INF src/main/webapp/WEB-INF/view webapp은 HTML, CSS, JS, JSP 등 웹 어플리케이션을 구현하는데 필요한 코드가 위치한다. WEB-INF에는 web.xml 파일이 위치한다. 스프링 MVC 설정 스프링 MVC를 실행하는데 필요한 최소 설정은 다음과 같다. 스프링 MVC의 주요 설정(HandlerMapping..
[Spring] Spring DI
2022. 4. 1. 17:31
프로그래밍/Spring
Spring DI DI는 'Dependency Injection'의 약자로 '의존 주입'을 의미한다. 여기서 말하는 '의존'은 객체 간의 의존을 말한다. import java.time.LocalDateTime; public class MemberRegisterService { private MemberDao memberDao = new MemberDAO(); public void regist(RegisterRequest req) { Member member = memberDao.selectByEmail(req.getEmail()); if (member != null) { throw new DuplicateMemberException("dup email " + req.getEmail()); } Member..