컨트롤러 스프링에서는 컨트롤러의 유연한 개발을 위해 컨트롤러가 될 수 있는 대상에 대해 제한을 두고 있지 않는다. 스프링은 사용자의 모든 요청이 DispatcherServlet(web.xml에 서블릿으로 정의되어 있음)을 거친다. 직접 컨트롤러 클래스를 작성하기 위해서는 스프링 MVC가 지원하는 컨트롤러를 구현해야 하고 DispatcherServlet에 연결해주는 컨트롤러 어댑터가 필요하다. Servlet, SimpleServletHandlerAdapter이 컨트롤러와 컨트롤러 어댑터는 기존 표준 서블릿(HttpSErvlet을 상속받아 정의하는 서블릿) 클래스 코드를 그대로 유지하면서 사용할 수 있도록한다. HttpRequestHandler, HttpRequestHandlerAdapter이 컨트롤러와 어..
초기화 메서드는 빈 객체가 생성되고 의존관계 주입이 끝난 시점에 실행되는 메서드를 말한다. 생성자에서 초기화 작업을 해도 되지만 빈에서 주입받는 모든 의존관계 변수나 프로퍼티의 DI 작업이 끝난 시점 이후에 초기화를 해야 될 때 초기화 메서드를 사용한다. 초기화 메서드를 지정하는 방법 init-method속성을 xml에 빈 선언시에 지정@PostConstruct init-method속성을 xml 빈 선언시 지정1cs빈 정의시에 init-method 속성에 DI작업이 끝난 이후에 호출될 메서드를 선언해준다. 123456789101112131415161718@Controllerpublic class TestTwoController { CarInfoProvider car; @Resource(name="kiaC..
스프링은 싱글톤(singgleton), 프로토타입(prototype), 요청(request), 세션(session), 글로벌세션(globalSession), 애플리케이션(application) 스코프를 기본적으로 제공 스프링에서 별도의 설정 없이 등록한 빈은 모두 싱글톤 빈이다. 요청 스코프 빈이 빈은 하나의 사용자 웹 요청 안에서 만들어지고 요청이 끝나면 제거된다.각 요청별로 독립적인 빈이 만들어지기 때문에 빈 객체 내에 상태유지 값을 저장해 두어도 안전하다.동시에 많은 요청이 있더라도 각각 별도의 요청 스코프 빈이 만들어지기 때문에 안전하다. +리퀘스트 스코프 빈 모델 객체123456789101112131415@Component@Scope("request")public class RequestScop..
기본적으로 스프링에서 빈을 등록하면 싱글톤으로 만들어진다. 애플리케이션 컨텍스트 마다 빈은 한개씩만 만들어진다는 얘기다.사용자의 요청이 있을 때마다 매번 관련 있는 빈을 새로 생성하는 것은 비효율적이기 때문이다. 싱글톤 빈은 의존성 주입(DI)을 하든지 ApplicationContext를 이용해서 빈을 불어와도 매번 같은 객체를 반환한다. 그런데 때로는 빈을 싱글톤이 아닌 하나의 빈으로 여러개의 객체를 만들어 사용해야 할 때가 있다.그럴 때 프로토 타입 빈을 사용하는데 프로토타입 빈은 컨테이너에게 빈을 요청할 때마다 매번 새로운 객체를 생성하여 반환해준다. 싱글톤빈은 다음과 같이 애노테이션으로 설정할 수 있다.12345678910111213@Component@Scope("prototype")public ..
XML에서 빈을 등록했다면 생성자나 자바빈 규약에 따른 수정자(set으로 시작하는 메서드)에 의존관계 빈이나 값을 주입할 수 있다. 1234567891011public class InjectionTest { public InjectionTest(String name, int age, String s) { System.out.println(name + "======" + age + "=========" + s.toString()); } public void setParameterSetting(String a) { System.out.println(a); } }Colored by Color Scriptercs 123456789 Colored by Color Scriptercs스프링 컨텍스트 XML설정 파일에..