Spring Boot의 설치부터 기본적인 DB 연결, 브라우저에서 실행하는 방법까지를 알아보자.
Spring Tool Suite4
경로 있는 곳 잡아준 뒤 quick install
바탕화면에 바로가기 만들기
Workspace 잡아주고 열기
lombok 설치
File
-> New
-> Spring Starter Project
pom.xml
에 의존성을 추가한다. <!--jasper와jstl 의존성 추가-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
package org.doit.ik;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
@SpringBootApplication
public class Ss00DemoApplication {
public static void main(String[] args) {
SpringApplication.run(Ss00DemoApplication.class, args);
}
//Bean 객체 추가
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception{
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
//Resource[] res = new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/**/*.xml");
//sqlSessionFactoryBean.setMapperLocations(res);
return sqlSessionFactoryBean.getObject();
}
@Bean
public InternalResourceViewResolver setupViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
return resolver;
}
}
package org.doit.ik.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeptVO {
private int deptno;
private String dname;
private String loc;
}
org.doit.ik.mapper
안에 SampleMapper.java
인터페이스 생성package org.doit.ik.mapper;
import java.util.List;
import org.doit.ik.domain.DeptVO;
public interface SampleMapper {
public List<DeptVO> getDeptLiST() throws Exception;
}
org.doit.ik.mapper
안에 SampleMapper.xml
생성<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.doit.ik.mapper.SampleMapper">
<select id="getDeptList" resultType="org.doit.ik.domain.DeptVO">
SELECT *
FROM dept
</select>
</mapper>
org.doit.ik.service
패키지에 SampleService.java
인터페이스 생성package org.doit.ik.service;
import java.util.List;
import org.doit.ik.domain.DeptVO;
@Mapper
public interface SampleService {
public List<DeptVO> getDeptList() throws Exception;
}
org.doit.ik.service
패키지에 SampleServiceImpl.java
구현package org.doit.ik.service;
import java.util.List;
import org.doit.ik.domain.DeptVO;
import org.doit.ik.mapper.SampleMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class SampleServiceImpl implements SampleService{
@Autowired
private SampleMapper sampleMapper;
@Override
public List<DeptVO> getDeptList() throws Exception{
return this.sampleMapper.getDeptList();
}
}
org.doit.ik.controller
패키지에 SampleController.java
생성package org.doit.ik.controller;
import java.util.List;
import javax.annotation.Resource;
import org.doit.ik.domain.DeptVO;
import org.doit.ik.service.SampleService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class SampleController {
@Resource
private SampleService sampleService;
@GetMapping(value="/dept/list")
public ModelAndView deptList() throws Exception{
ModelAndView mv = new ModelAndView();
List<DeptVO> list = this.sampleService.getDeptList();
mv.addObject("list", list);
mv.setViewName("/dept/list");
return mv;
}
}
application.properties
에 코드 추가server.port=80
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=scott
spring.datasource.password=tiger
#spring.thymeleaf.cache=false
# [ Ss01OracleApplication.java 설정하기도 함. ]
#mybatis.type-aliases-package=org.doit.ik.mapper
#mybatis.config-location=classpath:mybatis-config.xml
#mybatis.mapper-locations=classpath:mappers/**/*.xml
#spring.mvc.view.prefix=/WEB-INF/views/
#spring.mvc.view.suffix=.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SS</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<link href="/resources/dipin/example.css" type="text/css" rel="stylesheet" />
<script src="/resources/dipin/example.js"></script>
</head>
<body>
<div>
<h1 class='main'>JSP DEPT LIST</h1>
<table>
<tr>
<th>deptno</th>
<th>dname</th>
<th>loc</th>
</tr>
<c:forEach items="${ list }" var="vo">
<tr>
<td>${ vo.deptno }</td>
<td>${ vo.dname }</td>
<td>${ vo.loc }</td>
</tr>
</c:forEach>
</table>
</div>
</body>
</html>
localhost/dept/list
실행