Spring Boot 시작하기

tabi·2023년 7월 11일
0

Spring

목록 보기
10/15
post-thumbnail

Spring Boot의 설치부터 기본적인 DB 연결, 브라우저에서 실행하는 방법까지를 알아보자.

  1. spring.io 에서 원하는 버젼의 Spring Tool Suite 4 다운로드
  1. Spring Tool Suite4 경로 있는 곳 잡아준 뒤 quick install

  2. 바탕화면에 바로가기 만들기

  3. Workspace 잡아주고 열기

  4. lombok 설치

  1. Preferences 맞춰준다.
  • encoding은 UTF-8
  • Installed JREs에 JAVA 설치한 경로 추가 후 선택

  1. 프로젝트 생성
  • File -> New -> Spring Starter Project
  1. 프로젝트 실행
  • 실행하면 오류가 난다.
  1. 의존성 추가
  • 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>
  1. java로 configuration 생성
  • bean 객체 생성(mybatis SqlSessionFactory)하는 코드 추가
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;
	   } 

}
  1. package org.doit.ik.domain에 DeptVO.java 생성
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;

}
  1. 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;

}
  1. 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>
  1. 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;

}
  1. 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();
	}

}
  1. 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;
			}
	
}
  1. 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
  1. 폴더 및 파일 생성
  • list.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>
  1. Run as Spring Boot App 으로 실행 후 웹에서 localhost/dept/list 실행
  • 이렇게 잘 뜨는 것을 확인할 수 있다.
profile
개발 공부중

0개의 댓글