Spring Context 로드에 대한 간단한 설명

4357 단어 SpringContext로드
Spring 로드 방식
실행 가능한 파일 방식에 대해 일반적인 Spring 구성을 로드하는 방법은
ClassPathXmlApplicationContext

 public static void main(String[] args) {
    ClassPathXmlApplicationContext xmlApplicationContext = new ClassPathXmlApplicationContext("classpath:spring-context.xml");
    DemoService demoService = (DemoService) xmlApplicationContext.getBean("demoService");
    String text = demoService.hello();
    System.out.println(text);
  }

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.2.xsd"
    default-autowire="byName" default-lazy-init="false">

  <!--  bean -->
  <context:annotation-config/>
  <!--   -->
  <context:component-scan base-package="com.jin.lesson.context"/>
</beans>
spring 3.0부터spring 설정의 등록을 위해 주석을 사용하기 시작합니다

 public static void main(String[] args) {
    AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext();
    //  , Application 
    annotationConfigApplicationContext.scan(Main.class.getPackage().getName());
    //  , bean 
    annotationConfigApplicationContext.refresh();
    //  DemoService
    DemoService demoService = (DemoService) annotationConfigApplicationContext.getBean("demoService");
    String text = demoService.hello();
    System.out.println(text);
  }
demo Service는 정의된 서비스의 이름입니다. xml 설정 방식도 주석으로 스캔할지 여부를 설정할 수 있습니다. 예를 들어 1의

<context:annotation-config/>
demoService는 다음과 같은 방식으로 간단합니다.

@Service(value = "demoService")
public class DemoService {
  public String hello() {
    return "hello world";
  }
}
웹 응용 프로그램의 초기화
  • web.xml 설정 방식
  • 주해 방식
  • web.xml 설정 방식
    스프링 자체 서브렛을 사용하여 초기 등록
    
      <servlet>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring/spring-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <async-supported>true</async-supported>
      </servlet>
      <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
    Listener를 이용하여 등록합니다. 예를 들어 Spring+structs는 이런 방식으로 상하문 내용을 초기화합니다.
    
      <listener>
        <listener-class>
          org.springframework.web.context.ContextLoaderListener
        </listener-class>
      </listener>
      <listener>
        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
      </listener>
    
    주해 방식
    또한 Servlet 방식을 이용하여 초기화 매개 변수를 설정하지만, 이번에는 주석 기반 클래스 AnnotationConfigWebApplicationContext를 사용하고 Servlet을 등록해야 합니다
    
     @Override
      public void onStartup(ServletContext servletContext) throws ServletException {
        ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", DispatcherServlet.class);
        dispatcher.setInitParameter("contextConfigLocation", getClass().getName());
        dispatcher.setInitParameter("contextClass", AnnotationConfigWebApplicationContext.class.getName());
        dispatcher.addMapping("/*");
        dispatcher.setLoadOnStartup(1);
      }
    
    이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

    좋은 웹페이지 즐겨찾기