Java

    아큐먼트 리졸버란?

    아큐먼트 리졸버란?

    1. 아규먼트 리졸버란? 컨트롤러의 메서드의 인자로 사용자가 임의의 값을 전달하는 방법을 제공하고자 할 때 사용된다. 예를 들어, 세션에 저장되어 있는 값 중 특정 이름의 값을 메서드 인자로 전달한다. 2. 아규먼트 리졸버 작성 방법 1/2 org.springframework.web.method.support.HandlerMethodArgumentResolver를 구현한 클래스를 작성한다. supportsParameter() 메서드를 오버라이딩 한 후, 원하는 타입의 인자가 있는지 검사한 후, 있다면 true를 리턴한다. resolveArgument() 메서드를 오버라이딩 한 후, 컨트롤러 메서드의 인자로 전달할 값을 리턴한다. (supportsParameter()가 true를 리턴할 때에만 resolv..

    인터셉터(Interceptor)란?

    인터셉터(Interceptor)란?

    1. 인터셉터란? Interceptor는 DispatcherSerlvet에서 Handler(Controller)로 요청을 보낼 때, Handler에서 DispatcherServlet으로 응답을 보낼 때 동작한다. 2. 인터셉터 작성법 org.springframework.web.servlet.handler.HandlerInterceptorAdapter 클래스를 상속받거나, org.springframework.web.servlet.HandlerInterceptor 인터페이스를 구현한다. Java Config를 사용한다면, WebMvcConfigurerAdapter를 가지고 있는 addInterceptors 메소드를 오버라이딩 하고 등록하는 과정을 거친다. xml 설정을 사용한다면, 요소에 인터셉터를 등록한다..

    Spring MVC에서 Session 사용하기

    1. @SessionAttributes & @ModelAttribute @SessionAttributes 파라미터로 지정된 이름과 같은 이름이 @ModelAttribute에 지정되어 있을 경우 메소드가 반환하는 값은 세션에 저장된다. 아래의 예제는 세션에 값을 초기화 하는 목적으로 사용되었다. (User 객체가 "user"라는 이름으로 세션에 저장됨) @SessionAttributes("user") public class LoginController{ @ModelAttribute("user") public User setUpUserForm(){ return new User(); } } @SessionAttributes의 파라미터와 같은 이름이 @ModelAttribute에 있을 경우 세션에 있는 객체를 ..

    DispatcherServlet, MVC 설정

    1. DispatcherServlet을 FrontController로 설정하기 web.xml 파일에 설정 org.springframework.web.WebApplicationInitializer 인터페이스를 구현해서 사용. 단점 : 처음 웹 어플리케이션이 구동 되는 시간이 오래 걸릴 수 있다. Spring MVC는 ServletContainerInitializer를 구현하고 있는 SpringServletContainerInitializer를 제공한다. SpringServletContainerInitializer는 WebApplicationInitializer 구현체를 찾아 인스턴스를 만들고, 해당 인스턴스의 onStartUp 메서드를 호출하여 초기화한다. javax.servlet.ServletContai..

    Spring JDBC

    Spring JDBC

    1. Spring JDBC란? JDBC를 이용해서 프로그래밍을 하게 되면 반복적인 코드가 많이 발생한다. 이러한 반복적인 코드는 개발자의 생산성을 떨어뜨리는 주된 원인이 된다. 이러한 문제를 해결하기 위해 등장한 것이 Spring JDBC이다. 2. JDBC 패키지 org.springframework.jdbc.core : JdbcTemplate 및 관련 Helper 객체 제공 org.springframework.jdbc.datasource : DataSource를 쉽게 접근하기 위한 유틸 클래스, 트랜잭션매니저 및 다양한 DataSource 구현을 제공 org.springframework.jdbc.object : RDBMS 조회, 갱신, 저장 등을 안전하고 재사용 가능한 객체 제공 org.springfr..

    Spring IoC/DI 컨테이너

    Spring IoC/DI 컨테이너

    1. 컨테이너란? 컨테이너는 인스턴스의 생명주기를 관리한다. 생성된 인스턴스들에게 추가적인 기능을 제공한다. 예를 들어 Servlet을 실행해주는 WAS는 Servlet 컨테이너를 가지고 있다고 말한다. 개발자가 서블릿 클래스를 작성했지만, 실제로 메모리에 올리고 실행하는 것은 WAS가 가지고 있는 Servlet 컨테이너이다. Servlet 커테이너는 동일한 서블릿에 해당하는 요청을 받으면, 또 메모리에 올리지 않고 기존의 메모리에 올리간 서블릿을 실행하여 그 결과를 웹 브라우저에게 전달한다. 2. IoC(Inversion of Control) 컨테이너가 코드 대신 오브젝트의 제어권을 갖고 있어, IoC(제어의 역전)이라고 한다. 예를 들어, 서블릿 클래스는 개발자가 만들지만, 그 서블릿의 메소드를 알맞..

    Spring Framework란?

    Spring Framework란?

    1. Spring Framework란? 엔터프라이즈급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, 원-스탑-숍(One-Stop-Shop) 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다. loC 컨테이너이다. 선언적으로 트랜잭션을 관리할 수 있다. 완전한 기능을 갖춘 MVC Framework를 제공 AOP를 지원 스프링은 도메인 논리 코드와 쉽게 분리될 수 있는 구조로 되어 있다. 2. 프레임 워크 모듈 스프링 프레임워크는 약 20개의 모듈로 구성되어 있다. 필요한 모듈만 가져다 사용할 수 있다. 3. AOP와 인스트루멘테이션(Instrumentation) spring-AOP : AOP 얼라이언스(Alliance)와 호환되는 방법으로 AOP를 지원. spring-aspects : As..

    JDBC란?

    JDBC(Java DataBase Connectivity)란? 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약. 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API SQL과 프로그래밍 언어의 통합 접근 중 한 형태 JAVA는 표준 인터페이스인 JDBC API를 제공 데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver)를 제공한다.