Spring Context 로드에 대한 간단한 설명
실행 가능한 파일 방식에 대해 일반적인 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";
}
}
웹 응용 프로그램의 초기화스프링 자체 서브렛을 사용하여 초기 등록
<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);
}
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.