728x90
728x90

Annotation 10

Spring에 Data Binding(바인딩) - @RequestParam, Auto Binding

Spring(스프링)의 Controller에서 웹 브라우저(Web Browser)로 부터 전달되는 데이터를 Binding(바인딩)하여 사용하는 방법에 대해 알아보겠습니다. Spring(스프링)의 Controller에서는 전달되는 데이터를 Method(메서드)의 파라미터로 바인딩(Binding)해주거나 Method(메서드)에 있는 Bean(빈)으로 Binding(바인딩)을 해줍니다. @RequestParam Annotation Spring(스프링)의 Controller에서는 GET 방식으로 웹 브라우저(Web Browser)로 부터 전달되는 데이터를 Method(메서드)에 있는 파라미터에 Binding(바인딩)을 해줍니다. 즉, Controller에서는 HttpServletRequest 객체를 사용하여 M..

Spring에 DispatcherServlet 적용 (Servlet, Component-Scan, ViewResolver), Controller 추가

스프링 프레임워크(Spring Framework)의 DispatcherServlet에 대해 알아보겠습니다. Spring Framework Web MVC에서는 DispatcherServlet이 Central Servlet(중앙 서블릿)으로 Controller 역할을 하여 모든 요청(Request)을 받고 요청 URL과 매핑된 Controller로 연결시켜(서비스별로 분산시켜) 주고 처리된 결과(Model)를 화면(View)으로 처리(Rendering) 하여 응답(Response) 합니다. 웹 브라우저 요청부터 응답까지 처리되는 순서는 다음과 같습니다. Web Browser → Request(요청) → 해당 요청을 매핑한 컨트롤러 검색 → 컨트롤러 처리(View 이름 리턴) → View 검색 → View 처..

Spring Framework Web MVC(Model, View, Controller) Pattern - 스프링 프레임워크 웹 MVC(모델, 뷰, 컨트롤러) 패턴

Spring Framework(스프링 프레임워크)를 기반으로 개발하면 MVC로 개발할 수 있다고 했는데 MVC가 어떻게 Spring Framework에 적용되어 있는지 간단하게 알아보겠습니다. 우선, Framework(프레임워크)부터 알아보겠습니다. Framework 란 Frame(프레임 - 틀, 구조, 규칙) + work(워크 - 일)로 일(여기서는 애플리케이션 개발)을 하는 데 있어 효과적인 틀(여기서는 애플리케이션 개발에 필요한 프로세스 및 라이브러리)을 정의하고 제공합니다. 즉, 애플리케이션을 개발할 때 공통적으로 사용될 표준 프로세스, 구현에 필요한 클래스, 공통 라이브러리(화면 처리, DB 연동 처리) 들을 제공하여 동일한 개발 환경으로 개발을 할 수 있게 합니다. 그래서 프레임워크를 사용하면..

Spring/기초튼튼 2022.06.13

자바 어노테이션으로 데이터 액세스 객체 만들기 2 - Java Annotation DAO(Data Access Object), 이클립스(Eclipse)

로그인 요청(Request) URL를 처리하는 컨트롤러(Controller) 클래스를 생성하고 기존의 서비스(Service) 클래스인 "TestLoginService.java"를 수정하여 DAO(Data Access Object) 클래스를 의존성 주입(DI)하여 처리되도록 하겠습니다. ​ 기존 "TestDispatcherServlet.java"의 "service"메소드에서 처리되는 "login.do"과 "loginprocess.do"를 로그인 컨트롤러(Controller)를 만들어 분리하겠습니다. 7. "test2" 프로젝트의 "Java Resources"에서 "src/main/java"의 "com.hom.project.test2.controller"에서 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 [New >..

자바 어노테이션으로 데이터 액세스 객체 만들기 1 - Java Annotation DAO(Data Access Object), 이클립스(Eclipse)

마리아디비(MariaDB) 설치와 JDBC 드라이버로 데이터베이스 연결해주는 매니저를 구성했으니 데이터베이스와 연동하여 쿼리를 처리하는 DAO(Data Access Object) 클래스를 생성하겠습니다. ​ 이전 시큐리티 필터(TestSecurityFilter.java)에서 인증처리하기 위해서 로그인 서비스(TestLoginService.java)통해 사용자의 아이디와 패스워드를 하드코딩으로 검증하였습니다. if ("testid".equals(id) && "testpwd".equals(password)) { } 이 부분을 데이터베이스를 통해 처리되도록 DAO(Data Access Object) 클래스를 생성하고 서비스 클래스에 의존성 주입(DI)을 하여 처리되도록 하겠습니다. ​ 1. "test2" 프로..

자바 어노테이션으로 의존성 주입 처리하기 - Java Annotation Dependency Injection(DI), 이클립스(Eclipse)

클래스 맴버 필드(변수)에 어노테이션(Annotation)를 적용하여 외부에서 클래스 맴버 필드 타입에 해당되는 클래스를 찾고 생성된 인스턴스를 주입하는 방법(디펜던시 인젝션)에 대해 알아보겠습니다. ​ 의존성 주입(Dependency Injection)을 위해서 클래스 맴버 필드 타입은 클래스가 아닌 인터페이스(interface)로 합니다. 그 이유는 인터페이스(interface)로 구현(implements)한 다양한 클래스들을 외부에서 생성하여 주입할 수 있기 때문입니다. 의존성 주입으로 클래스 간의 의존 관계를 낮출 수 있습니다. ​ 의존성 주입(Dependency Injection)을 위해 클래스 맴버 필드와 인터페이스(interface)로 구현된 클래스에 어노테이션(Annotation)를 생성하..

자바 어노테이션 인젝션(주입) - Java Annotation Injection, 이클립스(Eclipse)

클래스 맴버 필드(변수)에 Annotation(어노테이션)를 적용하여 외부에서 초기화하는 방법(인젝션)에 대해 알아보겠습니다. ​ 1. 이전 "TestClass.java"에 클래스 맴버 필드(변수)를 추가합니다. private String name; 2. "test2" 프로젝트의 "Java Resources"에서 "src/main/java"의 "com.hom.project.test2.annotation"에서 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 [New > Annotation]를 클릭합니다. "New Annotation Type"창에서 "Name"에 "TestAnnStringInit"를 입력하고 "@Retention"은 "Runtime", "@Target"은 "Field"를 선택하고 "Finish"버튼을..

자바 어노테이션으로 서블릿의 리퀘스트 매핑 만들기 2 - Java Annotation Servlet Request Mapping, 이클립스(Eclipse)

이전에는 "@TestAnnRequestMapping"어노테인션을 "TestController"의 기능인 "addRequestFunction"메소드를 요청(Request) URL과 메소드(Method) 처리하였습니다. ​ 이번에는 컨트롤러(Controller)에서 "TestController"를 계승(extneds)하지 않고 처리하겠습니다. ​ 1. "TestServletContextListener.java"의 "contextInitialized"에서 메소드(Method)와 컨트롤러(Controller) 클래스 인스턴스를 매핑하하기 위해 메소드매핑맵(methodMappingMap)을 추가합니다. // Method-Class 맵 Map methodMappingMap = new HashMap(); 요청매핑맵(..

자바 어노테이션으로 서블릿의 리퀘스트 매핑 만들기 1 - Java Annotation Servlet Request Mapping, 이클립스(Eclipse)

이전에 서블릿(Servlet)를 기반으로 개발한 디스패처 서블릿(DispatcherServlet)의 컨트롤러(Controller)에 어노테이션(Annotation)을 이용하여 "Request Mapping"를 처리하도록 하겠습니다. ​ 1. 클래스가 컨트롤러(Controller)로 인식되기 위해 어노테이션(Annotation)으로 생성합니다. 2. 요청(Request) URL과 클래스의 메소드가 매핑되도록 어노테이션(Annotation)를 생성합니다. 3. 클래스에 어노테이션(Annotation)을 추가합니다. 4. WAS 로딩 시점에 프로젝트 패키지에 있는 클래스들을 스캔하여 클래스의 인스턴스를 생성하고 클래스의 메소드(Method)를 추출하여 요청매핑맵(Request Mapping Map)를 생성합니..

자바 어노테이션 만들기 - Java Annotation, 이클립스(Eclipse)

Annotation(어노테이션)은 소스 코드에 정보를 제공하는 메타데이터로 주석처럼 선언하여 사용합니다. ​ 1. "test2" 프로젝트의 "Java Resources"에서 "src/main/java"의 "com.home.project.test2"를 선택한 후 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 [New > Package]를 클릭하여 "Name"의 기존 패키지명에 ".annotation"를 추가하고 "Finish"버튼을 클릭합니다. 추가된 "com.hom.project.test2.annotation"에서 오른쪽 버튼을 클릭하여 컨텍스트 메뉴 [New > Annotation]를 클릭합니다. "New Annotation Type"창이 나타납니다. "Name"에 "TestAnnotation"를 입력하고 "@..

728x90
728x90