본문 바로가기

Back-End/SPRING

SPRING] 스프링 프로젝트 생성, 설정 하기

 

프로젝트 생성, 설정 방법

프로젝트 설정하는 과정이 생소하고 복잡하기 때문에 자세히 기록해두고 연습을 많이 해야할 것 같다.

 

1. Spring Legacy Project 로 프로젝트 생성

Package Explorer 에서 우클릭 > new > Spring Legacy Project

 

Spring MVC Project 선택 > Project name 적기

 

top-level package 이름 설정. - com.spring.main 과 같은 형식 (com.mvc.test 가 될 수도 있음)

 

2. 자바 버전 변경 (Project Facets과 pom.xml에서)

1) Project Facets

프로젝트 우클릭 > properties > project facets

Java 버전이 1.6 으로 되어있는데 본인이 사용하는 버전으로. 나는 1.8

 

2) pom.xml

11,12 번째 줄 (java 1.8과 springframework 4.3.14.RELEASE)
139 - 142 번째 줄. 본인이 사용하는 버전 (java 1.8)

 

3. web.xml 에서 한글 깨짐 방지 설정

파일에 설정을 추가해 넣을 때는 위아래로 충분히 칸을 띄어두어서 나중에 보기 편하게 하자

코드는 매번 복붙하면 된다. 외우기보단 어떤 코드인지 이해하기.

> 코드 복붙 더보기

더보기

한글 깨짐 방지 코드를 web.xml에 삽입

	<!-- 한글 깨짐 방지 설정 -->
	<!-- 서버가 켜지면 가장 먼저 읽게되는 파일 -->
	<!-- 한글깨짐 : 특정한 요청이 오면 특정 클래스로 연결해서 한글 깨짐을 방지 -->
	<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>

 

4. server path 변경

server path는 웹페이지 주소창에 뜨는 주소인데 그 부분을 수정해줄 수 있다.

서버 더블클릭
overview로 뜬다면 modules로 바꾼다음 보자

Path 부분이 /main으로 되어있다.

path 설정이 /main 일 때

Path 부분을 / 라고만 해둘 것이다.

오른쪽에 Edit 을 눌러 수정해준다.

이런 설정 파일들(web.xml, pom.xml, server 등)을 수정한 뒤에는 서버를 껐다 켜줘야
수정한 부분이 반영된다. 
서버를 끈 뒤에 수정하는 것이 가장 좋다...

수정 후 주소창

 

5.  pom.xml 에서 라이브러리 추가

필요한 라이브러리가 있다면 pom.xml에 설정해두고

maven 이 알아서 pom.xml을 읽고 라이브러리들을 다운받아준다..

 

추가해 줄 라이브러리는 DB관련 5가지 라이브러리

1) ojdbc : DB 접속을 도와준다.

주석 처리된 웹주소는 이 라이브러리 출처! 혹시 필요할지 모르니 주석처리하여 적어둔다고..

<!-- ojdbc : DB 접속 -->
<!-- https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client -->
<dependency>
    <groupId>org.mariadb.jdbc</groupId>
    <artifactId>mariadb-java-client</artifactId>
    <version>2.7.2</version>
</dependency>

 

2) dbcp : 커넥션(DB에서 무언가를 할 수 있는 키) 풀 사용

스레드 풀 처럼 26명에게 각자 키를 만들어서 주기보단 15개 정도 키를 빌려주고 다쓰면 반납하고 반납된 키를 빌려주고 하는 방식이 커넥션 이라고 한다..

<!-- dbcp : 커넥션(DB에서 무언가를 할 수 있는 키) 풀 사용 -->
<!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>

 

3)  spring-jdbc : DB와 SPRING을 연결 해준다.

<!-- spring-jdbc : DB 연결과 SPRING을 연결해준다. -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

 

4) mybatis : XML 쿼리문을 특정 인터페이스와 연결해주는 기능

<!-- mybatis : XML 쿼리문을 특정 인터페이스와 연결해주는 기능 -->	
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

 

5) mybatis-spring : 마이바티스와 스프링을 연결

<!-- spring-mybatis : 마이바티스와 스프링을 연결해준다. -->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.2</version>
</dependency>

 

이 라이브러리들 추가를 <!-- AspectJ --> 위에 해준다. 위치는,, 상관있나? 모르겠는데
일단 특정 위치를 정해두는 게 좋은 것 같다. 보기 편하니까

 

6. servlet-context.xml 추가 설정

src > main > webapp > WEB-INF > spring > appServlet > servlet-context.xml

servlet-context.xml 에서는 DB와 관련된 설정을 추가해준다.

위치는 <context:component-scan ...> 밑으로 통일.

1 ) DB 접속 정보의 DB 유저 네임과 비밀번호 확인
2) 마이바티스 사용 설정에 mapperLocation 위치 설정 확인
3) 간편 사용 설정에 base-package 위치 설정 확인

코드 복붙하다보면 위치 설정 변경을 깜빡할 수 있는데 오류가 나므로 꼭 꼭 확인해주기!

<!-- 접속 정보 -->
<beans:bean name="datasource" class="org.apache.commons.dbcp.BasicDataSource">
    <beans:property name="driverClassName" value="org.mariadb.jdbc.Driver"/>
    <beans:property name="url" value="jdbc:mariadb://localhost:3306/mydb"/>
    <beans:property name="username" value="web_user"/>
    <beans:property name="password" value="pass"/>
</beans:bean>

<!-- 마이바티스 사용 설정 -->
<!-- name = 필수요소(이름이 정해져 있음) / id = 선택요소(이름이 정해져 있지 않음) -->
<!-- 어떤 DB를 쓸건지 정보 제공 -->
<!-- 쿼리문(xml)이 어디에 있는지 지정 -->
<beans:bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <beans:property name="dataSource" ref="datasource"/>
    <beans:property name="mapperLocations" value="classpath:com/test/main/dao/*.xml"/>
</beans:bean>

<!-- 간편 사용 설정(마이바티스 사용하는 패키지 범위) -->
<mybatis-spring:scan base-package="com.test.main.dao"/>

 

설정코드를 넣고 나면 간편 사용 설정 코드가 빨갛게 된다.

빨간 줄 뜨는데.. 캡쳐 왼쪽 하단에 Namespaces 누르고 마이바티스 체크박스 체크해주기..

Namespaces 누르고 mybatis-spring 체크박스 체크 해주기

mybatis-spring 체크박스에 체크해주고 저장해주면 에러 없어짐.

 

7. 패키지 생성, 필요한 파일 생성

필요한 패키지를 생성해 사용한다.

패키지는 생성 한 뒤에 이름 변경하거나 지우거나,,  건들지 마,, 여러모로 복잡해지니까 ,,

클래스명은 변경해도 괜찮다.

- mapper.xml 필요 코드

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.mvc.member.dao.MemberDAO">
	<!-- 내용 -->
</mapper>

* mapper namespace 설정해주는 걸 종종 까먹는데,, 주의할 것!

 

 

여기까지 해주면 스프링 프로젝트 기본 설정이 끝난다.