Window > Preferences 선택
우리는 톰캣서버를 사용할 것이므로 삭제한다.
Server > Runtime Environments > VMware tc... 삭제
Add... >
Browse... 선택
사용할 Tomcat 서버를 선택해준다. 그리고 Finish
서버 추가
Tomcat 8.5 선택 후 Finish
서버를 더블클릭한 후 설정해준다. 포트 겹치지 않게 설정.
Maven settings.xml 파일 경로 설정
기본 경로로 되어있으므로 변경해야 한다.
앞서 설치한 maven 폴더 안의 settings.xml 경로를 찾아준다.
각종 encoding 설정. UTF-8로 바꿀 것.
JSON Files 인코딩 설정
spelling 인코딩 설정
New > Spring Legacy Project 생성
Project name 입력 / Spring MVC Project 선택 > Next
다운로드 용량 진행하라고 Yes 눌러준다.
sp 가 root가 된다.
위 그림의 오른쪽 하단에 빌드가 완료되는 것을 확인하고 진행해야 한다.
빌드가 완료되면
x표시가 사라졌다.또한 repository 폴더가 채워진 것을 확인할 수 있다.
프로젝트 우클리 > 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를 만들어주고 실행을 해봅니다
<%@ 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>
제대로 실행된 모습입니다.
webapp > WEB-INF > lib 폴더를 생성하고 그 아래에 JSTL 라이브러리를 넣어준다.
webapp > WEB-INF > views > main.jsp 파일을 만들고
index.jsp에 forward 태그를 사용해본다
<%@ 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>
<%@ 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 태그가 잘 동작한다.
DB관련한 라이브러리를 추가해준다.
기존에는 lib 폴더에 넣어서 사용했으나 이번에는 maven repository에서 받아서 사용('https://mvnrepository.com/')
첫번째로 뜨는 ojdbc6 선택하겠습니다.
해당 부분에 있는 코드를 복사한다.
pom.xml에서 dependencies 태그 안에 추가한다.
스프링 버전이 5.3.24이므로 버전을 맞추어 복사해온다.
ojdbc6를 추가한 것처럼 동일하게 dependency에 추가해준다.
앞서 추가한 것처럼 pol.xml에 추가를 하고
위에 보이는 lombok-1.18.24.jar 를 다운받는다.
그리고 실행을 시켜서 설치해 준다.
완료되면 STS를 재시작한다.
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)
서버 구동과 동시에 web.xml 파일을 거쳐 바로 로딩되는 문서
서버의 구동과 동시에 세팅해야 하는 내용들을 작성한다
주로 DB연결, 트랜잭션 처리, 내외부 모듈 연결 등등
- 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");
- 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);
- SQL구문 실행을 위한 템플릿을 제공하는 도구 등록
<bean class="org.mybatis.spring.SqlSessionTemplate" id="sqlSession"> <!-- SQL명령어 실행을 위한 도구에 대한 참조 설정 --> <constructor-arg ref="sqlSessionFactory"/> </bean>
위 코드는 내부적으로 다음과 같다.
SqlSessionTemplate sqlSession = new SqlSessionTemplate(sqlSessionFactory);
property는 setter를 주입하고
constructor-arg는 생성자를 주입한다고 보면 된다.
위와 같이 앞서 설정한 것들을 Spring Explorer에서 확인할 수 있다.
view 파일과 관련된 파일들을 모아둘 곳으로 정한다.
그리고 필요한 폴더를 생성해 준다.