[Spring](1) 스프링을 이용한 쇼핑몰 만들기_환경설정
lombok 설정
lombok-1.18.16.jar 버전을 메이븐 리포지토리를 통해 추가해주었다
Lombok을 사용하면 Java 개발시 자주 사용하는 getter / setter, toString(), 생성자 등을 자동으로 생성해주므로 약간의 코드만으로 필요한 클래스를 설계할 때 편리합니다
Java 버전 변경 (1.6 -> 1.8)
Java 버전을 1.8로 맞춰줘야 아래 3개의 클래스들이 상속/구현할 클래스/인터페이스들이 가져와집니다
- WebConfig.java (AbstractAnnotationConfigDispatcherServletInitializer 클래스 상속)
- RootConfig.java
- ServletConfig.java (WebMvcConfigurer 인터페이스 구현)
컴파일 관련 버전 변경
XML파일 삭제
현재 webapp에 web.xml과 spring 폴더를 삭제한 상태이다.
web.xml을 삭제하면 pom.xml에 에러가 발생하는데 기존에 사용하던 웹 프로젝트들이 기본적으로 web.xml을 사용하는 것을 기본 설정했기 때문이다
이를 해결하기 위해 해당 사진의 플러그인을 추가해줍니다
여기까지 모두 설정을 완료하였다면 Maven Update를 실행합니다
팀 프로젝트에서는 XML기반으로 스프링 설정을 했었는데, 이번에는 XML과 별개로 JAVA를 이용하는 설정을 통해서 해보기로 했다
글 작성 이전에 Spring Project 내에 있는 Spring Folder에 servlet-context.xml, root-context.xml, web.xml 파일을 삭제했습니다
삭제 전에 home.jsp가 잘작동되었던것을 확인했었는데, 삭제 후에는 404 에러가 발생했습니다
이를 해결하기 위해선 삭제한 XML 파일들을 대체할 수 있게 몇가지 설정을 해주어야합니다
RootConfig 생성
RootConfig 파일에 @Configuration 어노테이션을 선언
(기존 XML 방식의 root-context.xml 파일의 역할을 합니다)
ServletConfig 생성
(기존 XML 방식의 Servlet-context.xml 파일의 역할을 합니다)
@EnableWebMvc
@ComponentScan(basePackages= {"org.zerock.controller"})
public class ServletConfig implements WebMvcConfigurer{
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setViewClass(JstlView.class);
bean.setPrefix("/WEB-INF/views/");
bean.setSuffix(".jsp");
registry.viewResolver(bean);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
}
WebConfig 생성
XML을 사용하지 않는 경우 이 역할을 대신하는 클래스를 작성해서 처리해야한다
(기존 XML 방식의 web.xml 파일의 역할을 합니다)
config 패키지에 WebConfig Class를 생성하고 AbstractAnnotationConfigDispatcherServletInitializer 라는 추상클래스를 상속합니다
위 추상 클래스를 상속하면 3개의 추상메소드가 자동으로 오버라이드 되는데 getRootConfig() 클래스는 삭제한 spring 폴더 내에 있던 'root-context.xml'을 대신하는 클래스를 지정하게 됩니다
이것은 RootConfig, ServletConfig 클래스를 사용하므로 반환값을 아래와 같이 변경해주어야 합니다
@Override
protected Class<?>[] getRootConfigClasses() {
// TODO Auto-generated method stub
return new Class[] {RootConfig.class}; << 수정전 return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return new Class[] {ServletConfig.class}; << 수정전 return null;
}
@Override
protected String[] getServletMappings() {
// TODO Auto-generated method stub
return new String[] {"/"}; << 수정전 return null;
}
이로서 xml 없이 Java 설정만을 통해 404 에러를 해결하였다
Author And Source
이 문제에 관하여([Spring](1) 스프링을 이용한 쇼핑몰 만들기_환경설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jeomrye/Spring1-스프링을-이용한-쇼핑몰-만들기환경설정저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)