Servlet & JSP MVC2 구조를 구현한 세미프로젝트가 끝나고 Spring Framework를 설치했습니다.

파이널 프로젝트의 깃허브 생성을 위해 새 workspace에 우리 조 이름의 폴더를 생성하고 spring에서 launch

수업 때 배운대로 차근차근 프로젝트 생성

혹시 몰라 기록으로 남겨두려고 합니다

수업 때 캡쳐한 사진과 제가 새로 캡쳐한 사진이 혼재되어 있습니다.

STS 3.9 실행

sts.exe 실행시 첫화면(이클립스랑 똑같다)

WINDOW-PREFERENCES-AUTOMATICALLY~ 체크해제

톰캣 8.5 서버 등록 Next 클릭

내 pc의 톰캣 저장된 폴더를 선택하면 끝

 

Spring 라이브러리 5.0.2 Release 다운 - 압축해제

라이브러리 자동관리도구 Maven 3.8.3 다운로드 - 압축해제

 

conf/settings.xml 일부

압축해제한 폴더에서 conf/settings.xml 파일을 연 뒤, localRepository가 주석처리되어 있는 부분을 주석 밖으로 꺼내서

Repository위치를 원하는 경로로 수정한다.

window-preferences - Maven - User Setting에 Brows를 클릭해 conf/settings.xml경로를 선택하면

하단에 자동으로  localRepository 경로가 뜨는것을 확인하고

Apply and Close 클릭한다.

 

Ctrl+N(새로 만들기) -> Spring Legacy Project

 

Spring MVC Project 클릭 -> Next

 

Spring MVC를 선택하면 이만큼 다운로드해야한다는 건데 YES

패키지명은 .(점)을 기준으로 3개가 필요한데, 대문자는 사용하지 않는 게 좋다.

무난하게 com.학원명.프로젝트명으로 지었다.

 

 

새로 생성한 AlMin 프로젝트 마우스 우클릭 - Properties - Project Facets - Java 버전이 1.6으로 되어있는걸 실제 사용하는 1.8버전으로 변경 - Apply and Close

이렇게 하면 POM.xml에서 따로 바꿀 필요없이 1.8로 세팅되어있다.

Window - Preferences에서 각종 Encoding 설정을 UTF-8로 설정한다.(encoding으로 검색 시 한번에 나와서 편리함)

Encoding 설정 경로(총 7가지)

1. General - Workspace

2. Web - CSS Files / HTML Files / JSP Files

3. XML - XML Files

4. JSON - JSON Files

5. General - Editors - Text Editors - Spelling (이건 encoding 검색시 안나오므로 직접 찾아 클릭해야함)

각 설정시마다 Apply 클릭 필!!

 

겸사겸사 프로젝트실행시 STS 내부가 아닌 Chrome브라우저 새 창으로 뜨게 설정 후 Apply and Close

생성한 프로젝트의 Maven Dependencies를 열어보면 각종 jar가 있다.

POM.xml에서 dependency를 추가, 수정할 수 있다.

 

 POM.xml 수정사항 ▼

POM.xml에서 수정한 부분을 빨간펜 표시하였다.

 POM.xml 추가사항 ▼

POM.xml에 추가한 jar들이다.

DB연결에 필요한 ojdbc6 및 수업 때 배운 mybatis, AOP, gson(심플json도 배웠지만 학원쌤은 gson 추천)

파일업로드에 필요한 cos 또는 commons-fileupload & commons-io 중에는

어떤 걸 사용할지 결정을 안해서 일단 둘 다 추가했다.

그리고 수업 때는 안 배웠지만 내가 따로 쓰고 싶어 추가한 lombok은 getter, setter, tostring을 간편하게 해준다.

 

web.xml에 encodingFilter 추가

세미때는 Ctrl+N 해서 Filter로 새로 생성했던 건데 조금 더 간편해졌다.

 

Spring에 기본탑재된 log4j.xml

파이널 프로젝트를 진행하면서 우리가 겪을 오류코드 등

로그를 파일형태로 저장하면 좋을 것 같아서 Appendar 설정을 추가했다.

 

servlet-context.xml 추가사항

여기에 써도 동작하지만 일반적으로는 root-context.xml에 추가한다.

 

여기서부터는 xml파일을 새로 만들어야 한다.

그 전에 설정할 것

XML Catalog > User Specified Entries 클릭 우측 Add 버튼 클릭 (총 2개 Add)

  • config

Location : http://mybatis.org/dtd/mybatis-3-config.dtd

Key type : Public ID

Key : -//mybatis.org//DTD Config 3.0//EN

  • Mapper

Location : http://mybatis.org/dtd/mybatis-3-mapper.dtd

Key type : Public ID

Key: -//mybatis.org//DTD Mapper 3.0//EN

 

이렇게 2개 추가완료

 

 

-//mybatis.org//DTD Mapper 3.0//EN

mybatis-config.xml 생성

Ctrl+N -> New XML File -> Next -> Create~DTD file -> Next

좀전에 Add한 것 중에 config 선택  - Next - Finish

일단 이렇게 구색만 맞춰둠

myBatis-config.xml 작성방법 참고

●        MyBatis
●        mybatis_config.xml : 1project에 1개
○        <configuration>
    ■     <settings> - <setting>  NULL
    ■     <typeAliases>
        ●        <typeAlias type=”package...class명” alias=”a”>
    ■     <environments default=”a”>
        ●         <environment id=”a”>
○        <dataSource type=”POOLED”>
    ■     <property name=”” value=””>
    ■     <mappers>
        ●        <mapper resource=”경로///xxx_mapper.xml”>
○        </configuration>
        ●        xxx_mapper.xml
○        <mapper namespace=”a”>
    ■     <resultMap id=”rm” type=”a”>
        ●        <id=”field명” column=”컬럼명”>
        ●        <result=”field명” column=”컬럼명”>
        ●        column 명과 java객체 field명이 다를때
    ■     <select id=”b” resultType=”a” [parameterType=”package...class명”]>
        ●        resultType=”hashmap”
○        “java.util.HashMap” MyBatis 별칭처리해둠
    ■     <select id=”b2” resultMap=”rm” [parameterType=”a”]>
    ■     <update id=”c” [parameterType=””]>
    ■     <insert id=”a” [parameterType=””]>
    ■     <delete id=”d” [parameterType=””]>
○        </mapper>
        ●        xxxDao.java
○        int / String / Date result =
    ■     sqlSession.selectOne(“namespace.CRUD태그의id”[,parameter]);
○        sqlSession.selectList(“namespace.CRUD태그의id”[,parameter][,rowbound]);
    ■     RowBounds 사용한다면 parameter을 사용하지 않더라도 null,이라고 작성해주어 항상 3번째 위치에 RowBounds 와야함.
○        int result =
    ■     sqlSession.insert(“namespace.CRUD태그의id”[,parameter]); -> insert는 parameterType 생략하는 경우 거의 없음.

 

Ctrl+N -> New Folder -> resources 폴더 밑에 mappers 폴더 생성

 

 

로컬DB 생성

학원DB도 개설해주셔서 계정 저장했다.