0. 환경설정
https://lavender1122.tistory.com/162
Spring Legacy Project 생성하기
Explorer 빈공간 우클릭 >New > Other...
Project name 적기 > Spring MVC project 클릭 > Next
워크스페이스MVC 프로젝트 안될때 대체방법
워크스페이스
.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core 넣기
Yes 클릭
패키지경로 입력 ⇒ context:component-scan 반영되서 잘 써야 된다!!
Spring Legacy Project 생성완료
Tomcat 설정하기
Servers > No servers ~~ 클릭
설치된 Tomcat 버전 클릭 > Next 클릭
project 클릭 > Add > configured 들어갔는지 확인 후 > Finish
Tomcat 설정 완료
프로젝트 설정하기
해당 프로젝트 우클릭 > Properties 클릭
Java Build Path
설치된 자바 버전에 맞게 해야한다!
Java Build Path 클릭 > JRE System Library[JavaSE-1.6] 클릭 > Edit.. 클릭
Execution environment 에서 JavaSE-1.8(JDK1.8) 클릭 > Environments..클릭
JavaSE-1.8 클릭 > JDK1.8[perfect match] 선택 > Apply and Close 클릭
Finish 클릭
1.6 → 1.8 버전으로 변경확인 >Add Library... 클릭
Server Runtime 클릭 > Next 클릭
Apache Tomcat 클릭 > Finish
Apache Tomcat 버전확인 , JRE 버전 확인 > Apply
Project Facets
Project Facets 클릭 > Dynamic Web Module 3.1 변경 > Java 1.8 변경 > Runtimes 클릭 > Apche Tomcat 클릭 > Apply
Deployment Assembly
Deployment Assembly > Maven Dependencies 확인 > Apply > Apply and Close
web.xml : tomcat서버의 설정
웹 프로젝트의 배포 설명자/배치 기술서(deployment description)이며,
웹 프로젝트가 배포되는 데 이용되는 XML 형식의 자바 웹 애플리케이션 환경 설정 부분을 담당함
스프링 웹 프로젝트가 실행되면 가장 먼저 web.xml 파일을 읽어들이고 위부터 차례로 태그를 해석함
1) 네임 스페이스 : 코드에서 이름은 같지만 내용이 전혀 다른 요소와 충돌하지 않도록, 즉 이런 요소를 구별하는 데 사용함
2) 스키마 : 코드의 구조와 요소, 속성의 관계를 정의하여 다양한 자료형을 사용할 수 있도록 정의된 문서 구조,
즉 틀을 의미함
xsi:schemaLocation 속성은 참조하고자 하는 인스턴스 문서의 URI를 지정함
두 개의 속성 값은 공백으로 구분. 첫 번째는 사용할 네임 스페이스(보통 기본 네임 스페이스와 동일)고,
두 번째는 참조할 스키마 파일 이름.
한글 처리 필터
<!-- 한글 처리 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<!-- 모든 요청에서 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
log4j.xml
src/main/resources.log4j.xml 우클릭 > Open With > XML Editor 클릭
appender : 전달된 로그를 어디에 출력할지 결정(콘솔, 파일 기록, DB 저장)
priority : 로그 레벨
- fatal : 심각한 오류 발생
- error : 요청 처리 중 문제 발생
- warn : 프로그램 실행에는 문제가 없으나 오류 발생 경고
- info : 상태변경 등 정보성 메시지
- debug : 개발 시 디버깅 용도*
- trace : 상세한 이벤트 용도
pom.xml
java-version : 1.6 → 1.8 변경
org.springframework-version 3.1.1 → 5.2.5 로 변경
Database 라이브러리 의존 라이브러리
Test 아래 넣기
<!-- Database 라이브러리 시작 -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<!-- XML로 쿼리를 작성하게 해주는 라이브러리 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<!-- 스프링과 mybatis를 연동하게 해주는 라이브러리 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<!-- 스프링에서 JDBC(Java DataBase Connectivitiy) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-dbcp2 -->
<!-- dbcp : database connection pool => 커넥션객체를 미리 만들어놓고 쓰고/반납
최근에는 hikaricp를 사용하는 경우도 있음
-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.7.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<!-- 로깅을 위한 라이브러리. 쿼리를 console이나 파일 로그로 볼 수 있음 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<!-- ojdbc6 : oracle java database connectivity 드라이버 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<!-- Database 라이브러리 시작 -->
lombok 의존 라이브러리
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>provided</scope>
</dependency>
lombok download
https://projectlombok.org/download
이클립스 설치 경로 lombok.jar 이동
cmd 열기
java -jar lombok.jar 입력
Specify location... 클릭
이클립스 설치 경로 > eclipse.exe 클릭 > Select 클릭
Install/Update 클릭
Quit Installer 클릭
json 데이터 바인딩을 위한 의존 라이브러리
<!-- json 데이터 바인딩을 위한 의존 라이브러리 -->
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>
Maven build 설정 ⇒pom.xml 변경시 실행 시켜야함!
해당 프로젝트 우클릭 > Run As > Maven build 클릭
Goals : compile 작성 > Apply 클릭 > Run 클릭
Run Configurations 다른방법으로 여는 방법
해당 프로젝트 우클릭 > Run As > Run Configurations... 클릭
Run 클릭 > Console 창에 BUILD SUCCESS 출력시 사용가능
root-context.xml ⇒ 스프링 설정 파일
서블릿과 필터가 공유할 수 있는 루트 스프링 컨테이너 설정으로, 공통 빈(Service, Repository(DAO), DB, Log 등)을 설정함. 공통빈을 설정하는 곳으로 주로 View 지원을 제외한 bean을 설정함
스프링설정 이란
view와 관련되지 않은 객체를 정의
Service(기능), DAO(Repository : 저장소), DB등 비즈니스 로직과 관련된 설정
uploadFolder
<bean id="uploadFolder" class="java.lang.String">
<constructor-arg
value="C:\\eGovFrameDev-3.10.0-64bit\\workspace\\springProj\\src\\main\\webapp\\resources"></constructor-arg>
</bean>
uploadFolderDirect
<bean id="uploadFolderDirect" class="java.lang.String">
<constructor-arg value="C:\\eGovFrameDev-3.10.0-64bit\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\springProj\\resources\\upload"></constructor-arg>
</bean>
dataSource ⇒ 데이터베이스와 관련된 정보를 설정
<bean id="dataSource" //dataSource 객체 만듬
class="org.apache.commons.dbcp2.BasicDataSource" //BasicDataSource 데이터 소스 옴
destroy-method="close">
<property name="driverClassName" //객체의 property name
value="oracle.jdbc.driver.OracleDriver" /> //객체의 property value
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="오라클사용자" />
<property name="password" value="오라클비밀번호" />
</bean>
- bean을 Java로 변경 할 때
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
sqlSessionFactory ⇒ 데이터베이스와 연결을 맺고 끊어질 때까지의
라이프 사이클을 관리해주는 sqlSession 객체를 생성
- classpath == src/main/resources/
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations"
value="classpath:/sqlmap/**/*_SQL.xml" /> //SQL.xml 연동시킴
<property name="configLocation"
value="/WEB-INF/mybatisAlias/mybatisAlias.xml" /> //mybatisAlias 연동시킴
</bean>
*_SQL.xml 생성
src/main/resources 우클릭 > folder 생성 > sqlmap 이름 작성
new > other > MyBatis XML Mapper 클릭 > Next 클릭 > 아무거나써도된다_SQL.xml >Finish
! 꼭 _SQL.xml 똑같이 작성해야된다 !
예시
mybatisAlias.xml
WEB-INF 에서 mybatisAlias folder 생성
mybatisAlias folder 에서 MyBatis XML Mapper 클릭 > Next 클릭> mybatisAlias.xml 작성 > Finish
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
[마이바티스] 스프링에서 "_"를 사용한 컬럼명을 사용 시(BOOK 테이블의 BOOK_ID)
카멜케이스로 읽어줌(bookId)
ex) 테이블 컬러명이 member_id인 경우 jsp화면단에서 이 값을 사용 시 memberId로 사용
-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
<!-- 자주 사용하는 타입의 별칭을 세팅 -->
<typeAliases>
<typeAlias type="kr.or.ddit.vo.BookVO" alias="bookVO"/> //예시
</typeAliases>
</configuration>
sqlSessionTemplate ⇒ 객체를 통해 query를 실행함
- 데이터베이스에 개별적으로 쿼리를 실행시키는 객체
<bean id="sqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
원본
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="uploadFolder" class="java.lang.String">
<constructor-arg
value="C:\\eGovFrameDev-3.10.0-64bit\\workspace\\springProj\\src\\main\\webapp\\resources"></constructor-arg>
</bean>
<bean id="uploadFolderDirect" class="java.lang.String">
<constructor-arg
value="C:\\eGovFrameDev-3.10.0-64bit\\workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps\\springProj\\resources\\upload"></constructor-arg>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="username" value="PC15_2" />
<property name="password" value="java" />
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mapperLocations"
value="classpath:/sqlmap/**/*_SQL.xml" />
<property name="configLocation"
value="/WEB-INF/mybatisAlias/mybatisAlias.xml" />
</bean>
<bean id="sqlSessionTemplate"
class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
</beans>
서버 실행
Tomcat 클릭 > start 클릭
Welcom home 출력시 성공
실행 성공
- 프로젝트 이름 안써도 가동되는 이유 : 서버 Modules 에서 Path / 만 설정(해당 path 클릭 > Edit 클릭하면 변경가능)
jQury 설정
src.main.webapp.resources 우클릭 > folder 'js'생성 >jquery.min.js 넣기
jsp에서 아래 코드 넣기
<script type="text/javascript" src="/resources/js/jquery.min.js"></script>
'JAVA > spring' 카테고리의 다른 글
컨트롤러 요청 매핑 (0) | 2024.04.29 |
---|---|
Spring - 타일즈(Tiles) (1) | 2024.04.26 |
ckeditor5 사용법 (0) | 2024.04.26 |
CRUD 용어 정리(예제 BOOK) (0) | 2024.04.24 |
스프링부트 전체 환경설정(자바 버전, 인코딩) (0) | 2024.04.22 |