씨네
공부하는 개발자 강씨네
씨네
  • 분류 전체보기 (460)
    • Web (21)
      • HTML (11)
      • CSS (10)
    • JS 관련 (49)
      • JavaScript (27)
      • JQuery (22)
    • TS 관련 (15)
      • TypeScript (15)
    • NodeJS (7)
      • NodeJS (7)
    • 따라하며 배우는 시리즈 (23)
      • NodeJS & ReactJS Basic (23)
      • NodeJS & ReactJS Movie (0)
      • NodeJS & ReactJS Youtube (0)
      • NodeJS & ReactJS ChatBot (0)
    • SPA (14)
      • React (14)
      • Vue (0)
      • Anguler (0)
    • Java 관련 (118)
      • Java (52)
      • JDBC (6)
      • JSP & Servlet (18)
      • Spring Legecy (38)
      • SpringBoot (4)
    • Python (26)
      • Python (20)
      • PyMongo (1)
      • Django (5)
    • Git (24)
      • Github (24)
    • RDB (22)
      • Oracle (21)
      • MySQL (1)
    • NoSQL (5)
      • MongoDB (5)
    • OS (4)
      • Linux (4)
    • 빅데이터 (2)
      • hadoop (2)
    • IDE (20)
      • eclipse (11)
      • VSCODE (4)
      • VisualStudio (1)
      • IntelliJ (1)
      • PyCharm (1)
      • DBeaver (2)
    • Install (3)
      • Tomcat (1)
      • Docker (1)
      • Anaconda (1)
    • 오류&에러 (28)
      • TS (2)
      • NodeJS (7)
      • SQL (8)
      • Java (1)
      • Spring (4)
      • Git (6)
      • 기타 (0)
    • 알고리즘 (67)
      • 수열 (1)
      • 백준(backjoon) (39)
      • Programmers (27)
    • 자격증 (5)
      • SQLD (5)
    • 기타 (2)
    • IT유튜브로 지식쌓기 (2)

공지사항

인기 글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
씨네

공부하는 개발자 강씨네

[Spring] JavaConfig(xml을 java로 변경)
Java 관련/Spring Legecy

[Spring] JavaConfig(xml을 java로 변경)

2022. 4. 12. 10:57
728x90

​

10. com/mvc/update/config/ApplicationConfig

com.mvc.update.config.ApplicationConfig를 만들어주세요!

​

applicationContext.xml의 내용을 applicationConfig로 옮기려고합니다.

xml파일의 이름은 Spring Bean Configuration File입니다.

클래스(.java)에 xml파일을 옮기기 위해서는 @Configuration 어노테이션이 필요합니다.

context:property의 내용은 클래스 위에 @PropertySource 어노테이션을 작성하면됩니다.

그리고 필드를 선언해서 @Value어노테이션으로 값을 주입합니다.

자바에서 Bean태그를 사용하기 위해서는 @Bean 어노테이션을 사용합니다.

​

​

​

11. com/mvc/update/config/ServletConfig(impl WebMvcConfigurer)

이번에는 servlet-context.xml을 java로 바꿔보겠습니다.

WebMvcConfigurer을 상속받는 클래스를 만들어주세요!

 

마찬가지로 xml파일에 대한 내용을 자바에서 사용하기 위해 @Configuration 어노테이션을 작성합니다.

이후 addResourceHandler를 @Override하여 메소드를 작성합니다.

또 Bean객체를 만들기위해 @Bean어노테이션을 사용합니다.

Component-scan을 사용하기 위해서는 @ComponentScan 어노테이션을 걸어주면됩나다.

​

​

12. web.xml

13. WEB-INF/spring/appServlet

(appServlet 폴더 삭제 - maven - update project)

​

​

14.com/mvc/update/config/WebConfig

(impl WebApplicationInitializer)

 

​

WebConfig.java

package com.mvc.update.config;

import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.DispatcherServlet;

public class WebConfig implements WebApplicationInitializer {

	@Override
	public void onStartup(ServletContext servletContext) throws ServletException {
		// ApplicationConfig : config 설정 클래스를 지정해주는 것
		AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
		applicationContext.register(ApplicationConfig.class);
		
		// Listener
		servletContext.addListener(new ContextLoaderListener(applicationContext));
		
		// ServletConfig
		AnnotationConfigWebApplicationContext servletConfig = new AnnotationConfigWebApplicationContext();
		servletConfig.register(ServletConfig.class);
		
		ServletRegistration.Dynamic dispatcherServlet = servletContext.addServlet("dispatcherServlet", new DispatcherServlet(servletConfig));
		dispatcherServlet.setLoadOnStartup(1);
		dispatcherServlet.addMapping("*.do");
		
		// encodingFilter
		FilterRegistration.Dynamic filterRegistration = servletContext.addFilter("encodingFilter", new CharacterEncodingFilter("UTF-8", true));
		filterRegistration.addMappingForUrlPatterns(null, true, "/*");
		
	}

}

​

​

15. pom.xml : failOnMissingWebXml -> false

<!-- web.xml 삭제 -->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.5</version>
    <configuration>
    	<failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>
728x90

'Java 관련 > Spring Legecy' 카테고리의 다른 글

[Spring] Hello, Spring! (스프링 프로젝트 실행)  (0) 2022.09.04
[Spring] Maven을 이용한 스프링 프로젝트 생성  (0) 2022.09.03
[Spring] Spring JDBC  (0) 2022.04.11
Spring] update(버전설정 잡기)  (0) 2022.04.10
[Spring] 파일 업로드 / 다운로드(file upload / download)  (0) 2022.04.09
    'Java 관련/Spring Legecy' 카테고리의 다른 글
    • [Spring] Hello, Spring! (스프링 프로젝트 실행)
    • [Spring] Maven을 이용한 스프링 프로젝트 생성
    • [Spring] Spring JDBC
    • Spring] update(버전설정 잡기)
    씨네
    씨네
    개발자 씨네가 공부하는 내용을 기록 겸 공유하는 블로그입니다!

    티스토리툴바