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 파일을 연 뒤, 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-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도 개설해주셔서 계정 저장했다.
'코딩중독 > JAVA' 카테고리의 다른 글
log4j 보안취약점 발견 (0) | 2021.12.13 |
---|---|
[Spring] Getter Setter를 간편하게 해주는 어노테이션, lombok(롬복) (0) | 2021.11.17 |
이클립스 오류 메시지 대처방법 (0) | 2021.10.27 |
이클립스 UML 플러그인 - 파피루스 Papyrus :: 클래스 다이어그램 만들기 (0) | 2021.09.29 |
[JAVA] 자바 중첩 for문으로 별찍기 (0) | 2021.07.27 |