JAVA/Spring

sts를 이용한 다양한 설정 확인(매핑 등의 설정)

영공쁘이 2021. 8. 5. 18:30

             이 경로를 따라서 컴포넌트 스캔 관련 설정을 볼 수 있음                   ( src -> appServlet -> servlet-context.xml)

 

 

 

설명

1. 도메인 이름에 관한 것

  [여기서 <beans: bean class ~> 인 부분, Resolves views~]

 

  원래 프로그램을 컴파일하면 http://localhost:8888/Hello/WEB-INF/views/member/logOut.jsp 경로가 이렇다.

 

근데, 지금까지 써온 것과 모든 url을 보면: 도메인이름(localhost:포트번호)/홈페이지이름(index나 home이나 등등)

http://localhost:8888/Hello/loginForm.do 이런식으로 적용이 된다.

 

이는, prefixsuffix 덕분에 가능했던 것인데, 

경로의 앞부분을 의미하는 prefix(대신 경로 정해주기(WEB-INF/views/)와 뒷부분을 의미하는 suffix(.jsp)를 

 요청 명 앞과 뒤에 붙임으로써, 서버가 하나의 경로로 인식될 수 있게 하는 것을 나타낸다.

    -> 그러면서 url의 길이는 줄어들고 훨씬 효율적이게 되는 것이다.

 

 그리고, ViewResolver의 역할은 요청명을 받고 해당 뷰로 이동하고자 할 때 쓰는 거다.

 

★ 지금 프로젝트 명이 co.kr.Hello인데, http://localhost:8888/Hello/loginForm.do 에서

Hello부분까지 제거하고자 한다면, 

SERVERS 폴더에 server.xml에 path="/" 이렇게 경로를 만들면 된다.

 

★ 더 나아가서,

 

 

web.xml로 들어가기( src -> spring -> web.xml)
web.xml에 <servlet-mapping> 부분에서는 주소를 root로 쓸 수 있게 할 수 있다.

이 말은, 지금 경로가 http://localhost:8888/loginForm.do 이렇게 됨을 알 수 있다. 

근데 여기서,  " .do " 를 없애고 진짜 알멩이만 남게(간단한 요청 명만) 하려면

<url-pattern>/</url-pattern>  이 부분을  <url-pattern> /*.do </url-pattern> 이렇게 고치면 된다.

 

** 그럼 http://localhost:8888/loginForm : 이런식으로 url에 써서 해당 홈페이지로 이동이 가능하다!

 

 

2. 컴포넌트 스캔(빈 등록 부분)

 

위의 글에서 아래를 찾으면, 컴포넌트 스캔 부분이 나온다.

컴포넌트 스캔 

컴포넌트 스캔이란?   - 매핑한 부분을 명시적으로 아는 것

https://velog.io/@hyun-jii/%EC%8A%A4%ED%94%84%EB%A7%81-component-scan-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EB%8F%99%EC%9E%91-%EA%B3%BC%EC%A0%95

 

스프링 component-scan 개념 및 동작 과정

스프링 component-scan의 개념과 동작 과정에 대해 알아보려고 한다!얼마 전 면접에서 component-scan의 동작 과정에 대해 설명해달라는 질문을 받았다...질문을 받았을 때, component-scan...? 이것은..스캔하

velog.io

 

이 부분이 제대로 설정되어야 빈 등록이 잘되면서 매핑이 되는 것이고 동작을 할 수가 있다.

 

3. root-context.xml을 통해 SQL에 관한 처리를 가능하게 하기

src -> spring -> root-context.xml
mySQL, transaction, MyBatis(sqlSessionFactory, sqlSession) 사용이 가능해짐

5. 기존 pom.xml 에서 maven, 서블릿 등 운용에 필요한 패키지 넣기(기존 코드에서 Test 밑에 아래를 추가만 하면 됨)

	<!-- MyBatis -->
      <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis</artifactId>
         <version>3.2.8</version>
      </dependency>

      <!-- mybatis-spring -->
      <dependency>
         <groupId>org.mybatis</groupId>
         <artifactId>mybatis-spring</artifactId>
         <version>1.2.2</version>
      </dependency>

      <!-- Mysql -->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>5.1.31</version>
      </dependency>

      <!--spring-jdbc -->
      <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-jdbc</artifactId>
         <version>3.2.3.RELEASE</version>
      </dependency>