외장 톰캣을 활용한 자바 스프링 웹어플리케이션 구동 방법

코끼릭·2022년 4월 21일
0

IT

목록 보기
5/24

Spring WebMVC를 사용한 프로젝트 코드

  1. @EnableWebMvc를 context 클래스에 붙여 WebApplication Context파일을 생성한다.

  2. 추가적인 view resolver의 커스터마이징과 같은 설정이 필요한 경우에는 WebMvcConfigurer 인터페이스를 상속받은 후 필요한 추가 설정 메소드를 작성하면 된다.

    
    @EnableWebMvc
    @Configuration
    @ComponentScan
    public class AppContext implements WebMvcConfigurer {
    	//view resolver와 관련된 설정 메소드
        @Override
        public void configureViewResolvers(ViewResolverRegistry registry) {
            registry.jsp();
        }
        //추가적인 빈 설정..
    }
  3. WebApplicationInitializer를 구현한 클래스를 작성하고 OnStartup 메소드에서는 작성된 WebMvcConfigurer 파일을 디스패처 서블릿 컨텍스트 파일로 등록하는 과정을 거쳐 웹어플리케이션 컨텍스트 과정을 마무리한다.(web.xml의 코드 버전)

    public class VoucherWebApplicationInitializer implements WebApplicationInitializer {
       @Override
       public void onStartup(ServletContext servletContext) throws ServletException {
           AnnotationConfigWebApplicationContext webApplicationContext = new AnnotationConfigWebApplicationContext();
           webApplicationContext.register(AppContext.class);
    
           DispatcherServlet dispatcherServlet = new DispatcherServlet(webApplicationContext);
           ServletRegistration.Dynamic servletRegistration = servletContext.addServlet("voucher", dispatcherServlet);
           servletRegistration.addMapping("/");
           servletRegistration.setLoadOnStartup(1);
       }
    }
  1. 컨트롤러를 통해 HTTP로 요청받은 경우 수행할 동작을 정의한다.

    @Controller
    public class VoucherController {
    
    	// view 객체를 반환하는 컨트롤러
        @RequestMapping(value = "/voucher", method = RequestMethod.GET)
        public InternalResourceView showForm() {
            return new InternalResourceView("/WEB-INF/hello.jsp");
        }
        // view 객체의 이름을 지정한 컨트롤러로 view resolver가 해당하는 파일이름으로 변환시켜줌
        @RequestMapping(value = "/voucher1", method = RequestMethod.GET)
        public String showForm1() {
            return "bye";
        }
    }

프로젝트와 웹서버 연동(Tomcat)

  1. Tomcat 8 버전을 설치한다.

  2. Run Debug Configuration에서 Tomcat local 서버를 생성하고 설치한 톰캣 파일의 위치를 지정해서 Tomcat과 연결시켜준다.(home과 base directory를 톰캣 폴더 위치로 지정)

  3. Run Debug Configuration>Deployment에서 배포를 원하는 Artifacts를 등록해준다.

  4. 프로젝트가 Arifacts에 등록된 것이 없다면 Project Structure에서 main모듈을 Web Application으로 생성한다.

  5. 서블릿이 실제 구동되는 WAS의 root폴더에는 로컬 프로젝트 환경의 프로퍼티, 리소스 파일이 없기 때문에 해당 리소스 파일도 was의 루트 폴더에 같이 등록이 되도록 설정한다.


  6. 프로파일 설정을 was에서 반영하기 위해 톰캣의 profile을 지정하는 명령어를 추가해줘서 적절한 빈이 DI 될 수 있도록 설정한다.

    VM Option: -Dspring.profiles.active={profile name}


Tomcat 프로파일 설정

profile
ㅇㅅㅇ

0개의 댓글