Programing

spring 기본 생성 파일 설명

하얀배터리 2020. 6. 10. 01:14
728x90

src/main/java -> 기본 src경로  [java파일]

src/main/resources -> 리로스   [xml 파일]

src/test/java -> 현재 사용하지 않음

src/test/resources -> 현재 사용하지 않음

JRE System Libray -> 라이브러리 -> 지속적으로 다운받을때마다 자동으로 추가됨 [늘어남]

Maven Dependencles -> 메이븐 파일 다운로드 받을때마다 늘어남

src

 main 

  webapp

   resources 

   WEB-INF

    classes

    spring

    root-context.xml

      appServlet

          servlet-context.xml                 //환경설정파일 

    views

      home.jsp          [  home.jsp 가 index.jsp역할  ]

target

 

  porm.xml              

 

 

 

기본적으로 컨트롤러가 생성되어 있다. 

 

 

순서 xml   / ->  컨트롤러 / 제어[맵핑등 ] 추가 기능  -> jsp 파일

 

 

 


HomeController.java  -> 기본 컨트롤러 초기 자동생성 

 

@RequestMapping -> 맵핑 처리하는 부분  value가 /로 들어오면 -> public String home 실행 헤라

여기서  value = "/" 는 web.xml의 /를 말한다.   

 

 

model.addAttibute("serverTime",formattedDate); 

//formattedDate 가공한 날짜와 시간  -> serverTime 변수에 넣어서 http헤더에 올려 놓음 

 

out.println , System.out.println 등과 같다고 생각하면 됨 

Logger.info("Welcome home! The client locale is {}", locale)  -> 콘솔에 찍을때 

 

return "home"; //앞에 아무것도 안적었기 때문에 "/WEB-INF/views/home" 이다.  [아래 자세한설명]

 


[자세한 설명]

servlet-context.xml [환경설정파일이다.]

xml 표기

<beans> </beans>  스프링에서 사용하겠다.

 

<beans:property name="prefix" value="/WEB-INF/views/" />

   컨트롤러가 보낼때 위치[홈디렉터리 위치]어디로 할건지

 

<beans:property name="suffix" value=".jsp" />

  컨트롤러가 보낼때 확장자는 어떤것으로 보낼건지 ?

   --> /WEB-INF/views/아래 있는 jsp 확장자를 가진 홈디랙터리 로 보내짐 [기본값]

 

[기본값으로 설정되어있다. ]    /WEB-INF/views/ 아래 .jsp 확장자 

<context:component-scan base-package="com.spring.springTest" />

  component->들어가자마자 스캔해라  "com.spring.springTest"여기부터 라는명령  ""안에는 컨트롤러위치적어줌

  즉 -> 컨트롤러를 가장 먼저 스캔해라        [com.spring.springTest -> 현재 프로젝트의 기본 컨트롤러의 위치]

 

 

servlet-context 에서 홈디렉터리 위치 를 , 확장자를  각각 지정해주었기때문에 return home으로 작성하면

  views아래 /WEB-INF/views/home 이 된다. 

  자동으로 확장자도 home.jsp 가 된다. 

 

<beans:property name="prefix" value="/WEB-INF/views/" />

<beans:property name="suffix" value=".jsp" />

 

 


 

 

 

 

 

 

 

 

 

 

 

 

728x90