Spring :: legacy 프로젝트 생성 및 세팅

김병철·2022년 12월 4일
0

Spring

목록 보기
2/2

# Spring

# Server 추가

Window > Preferences 선택

우리는 톰캣서버를 사용할 것이므로 삭제한다.
Server > Runtime Environments > VMware tc... 삭제

Add... >

Browse... 선택

사용할 Tomcat 서버를 선택해준다. 그리고 Finish

서버 추가

Tomcat 8.5 선택 후 Finish

서버를 더블클릭한 후 설정해준다. 포트 겹치지 않게 설정.


# Legacy Project 생성 및 세팅

Preferences 세팅

Maven settings.xml 파일 경로 설정

기본 경로로 되어있으므로 변경해야 한다.

앞서 설치한 maven 폴더 안의 settings.xml 경로를 찾아준다.

각종 encoding 설정. UTF-8로 바꿀 것.

JSON Files 인코딩 설정

spelling 인코딩 설정

Legacy Project 생성

  • New > Spring Legacy Project 생성

  • Project name 입력 / Spring MVC Project 선택 > Next

  • 다운로드 용량 진행하라고 Yes 눌러준다.

  • package 설정 > Finish

sp 가 root가 된다.

  • 주의사항

위 그림의 오른쪽 하단에 빌드가 완료되는 것을 확인하고 진행해야 한다.

빌드가 완료되면

x표시가 사라졌다.

또한 repository 폴더가 채워진 것을 확인할 수 있다.

Legacy Project 세팅

  • 프로젝트 우클리 > Properties > Java Build Path > Libraries > JRE System Library > Edit

  • jdk 1.8로 변경

  • Project Facets > Java 버전 변경(1.8로)

  • pom.xml 파일에 java 버전 변경(1.8로 변경)

    <properties><java-version>1.8</java-version></properties>

properties 는 해당 문서에서 사용할 환경설정 내용을 담은 변수이다
태그명이 변수이고 ${변수명}으로 해당 값을 불러온다.

스프링 버전을 5.3.24로 바꾸고 저장을 하면 자동으로 메이븐에서 버전이 바뀐 것을 확인 할 수 있다.

webapp 아래에 index.jsp를 만들어주고 실행을 해봅니다

  • index.jsp 파일 코드 :
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>성공적으로 실행되었습니다.</h1>
</body>
</html>

제대로 실행된 모습입니다.


# JSTL 라이브러리 추가

webapp > WEB-INF > lib 폴더를 생성하고 그 아래에 JSTL 라이브러리를 넣어준다.

webapp > WEB-INF > views > main.jsp 파일을 만들고

index.jsp에 forward 태그를 사용해본다

  • index.jsp 코드 :
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:forward page="WEB-INF/views/main.jsp"/>
</body>
</html>
  • main.jsp 코드 :
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>여기는 메인</h1>
</body>
</html>

jsp:forward 태그가 잘 동작한다.

# Dependency 추가

DB관련한 라이브러리를 추가해준다.

  • OJDBC6 라이브러리 :

기존에는 lib 폴더에 넣어서 사용했으나 이번에는 maven repository에서 받아서 사용('https://mvnrepository.com/')

첫번째로 뜨는 ojdbc6 선택하겠습니다.

해당 부분에 있는 코드를 복사한다.

pom.xml에서 dependencies 태그 안에 추가한다.

  • spring-jdbc 라이브러리 :

스프링 버전이 5.3.24이므로 버전을 맞추어 복사해온다.

ojdbc6를 추가한 것처럼 동일하게 dependency에 추가해준다.

  • mybatis 라이브러리
  • mybatis spring 라이브러리

  • Lombok 라이브러리 추가 :

앞서 추가한 것처럼 pol.xml에 추가를 하고

위에 보이는 lombok-1.18.24.jar 를 다운받는다.

그리고 실행을 시켜서 설치해 준다.

완료되면 STS를 재시작한다.


# mybatis-config.xml 설정

configuration안에 mappers안에 mapper태그를 써서 입력해 준다.

실제로 존재하는 파일을 경로에 써 줘야 에러가 나지 않는다.

아래와 같이 사용할 mapper를 등록한다.

typeAliases를 설정해 두면 board, member라고 간단히 입력하고 경로를 다 적지 않아도 된다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis-3-config.dtd" >
<configuration>

	<settings>
		<setting name="jdbcTypeForNull" value="NULL"/>
	</settings>
	
	<typeAliases>
		<typeAlias type="com.kh.spring.board.model.vo.Board" alias="board"/>
		<typeAlias type="com.kh.spring.board.model.vo.Reply" alias="reply"/>
		<typeAlias type="com.kh.spring.member.model.vo.Member" alias="member"/>
	</typeAliases>

	<mappers>
		<mapper resource="/mappers/member-mapper.xml"/>
		<mapper resource="/mappers/board-mapper.xml"/>
	</mappers>

</configuration>

board 경로를 지정해서 board라고만 쓰면 찾을 수 있게끔 typeAliases를 설정해주었다.

그리고 mapper 파일을 등록해주었다.(member-mapper와 board-mapper)

# root-context.xml

서버 구동과 동시에 web.xml 파일을 거쳐 바로 로딩되는 문서

서버의 구동과 동시에 세팅해야 하는 내용들을 작성한다

주로 DB연결, 트랜잭션 처리, 내외부 모듈 연결 등등

  • DB 연결 설정 :
    1. DB연결을 위한 도구 설정
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close">
	<!-- 어느 DB에 접속할 것인지 설정 -->
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
	<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
	<property name="username" value="SPRING"/>
	<property name="password" value="SPRING"/>
</bean>

현재 DB연결 정보를 넣어준다.

위에서 세팅한 것은 내부적으로 다음과 같이 동작한다.

BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
dataSource.setUsername("spring");
dataSource.setPassword("spring");
  1. Mybatis Spring에서 제공하는 SQL 명령어 실행을 위한 도구 등록
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 
		mybatis 설정파일의 위치를 설정(src/main/resources)하여 설정값을 가져오겠다.
		이때 classpath : 구문이 resources 폴더를 의미한다.
		-->
	<property name="configLocation" value="classpath:mybatis-config.xml" />
	<!-- 연결을 위한 도구 참조(위에서 만든 dataSource Bean을 참조) -->
	<property name="dataSource" ref="dataSource"/>
</bean>

위 코드는 내부적으로 다음과 같다.

SqlSessionFactoryBean sqlSessionFactory = new SqlSessionFactoryBean();
sqlSessionFactory.setConfigLocation("classpath:mybatis-config.xml");
sqlSessionFactory.setDataSource(dataSource);
  1. SQL구문 실행을 위한 템플릿을 제공하는 도구 등록
<bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession">
	<!-- SQL명령어 실행을 위한 도구에 대한 참조 설정 -->
	<constructor-arg ref="sqlSessionFactory"/>
</bean>

위 코드는 내부적으로 다음과 같다.

SqlSessionTemplate sqlSession = new SqlSessionTemplate(sqlSessionFactory);

property는 setter를 주입하고
constructor-arg는 생성자를 주입한다고 보면 된다.

  • bean확인 :

위와 같이 앞서 설정한 것들을 Spring Explorer에서 확인할 수 있다.


# resources

view 파일과 관련된 파일들을 모아둘 곳으로 정한다.

그리고 필요한 폴더를 생성해 준다.

profile
keep going on~

0개의 댓글