본문 바로가기
SpringBoot

Spring-Boot Blog Project 1. 기본 세팅

by 김마리님 2020. 7. 17.

사용할 기본 Dependency

 

STS에서 제공하지 않는 dependency를 추가한다.

 

→ dependency 추가

pom.xml 에 추가(jstl, jasper)

	<!--user library  -->	
	<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency>
	<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>

 

→ 데이터베이스 연결 설정

메인 패키지에 config 패키지 생성

 

DataSourceConfig.java

package com.mary.blog.config;

import javax.sql.DataSource;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Configuration;

@Configuration
public class DataSourceConfig {

	@ConfigurationProperties(prefix="spring.datasource")
	public DataSource dataSource(){
    	return DataSourceBuilder.create().build();
	}
}


 

DataAccessConfig.java

package com.mary.blog.config;

import javax.sql.DataSource;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;

@Configuration
@MapperScan(basePackages = "com.cos.blog.repository") //com.cos.blog.repository 이하 폴더를 스캔해서 메모리에 다 띄어준다.(repository 어노테이션 안붙여도됨)
public class DataAccessConfig {

    @Bean
    public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {

        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();

        sessionFactory.setDataSource(dataSource);
        sessionFactory.setMapperLocations(
        		new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
        return sessionFactory.getObject();
    }

    @Bean
    public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

 

→ 메인 포트, 컨텍스트 루트, 데이터 베이스 연결 설정

application.properties -> 확장자 .yml로 변경

 

application.yml

server:
  port: 8080
  servlet:
    context-path: /blog
 
spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp
  
  datasource:
    url: jdbc:mysql://localhost:3306/spring?serverTimezone=Asia/Seoul
    username: spring
    password: bitc5600
    driver-class-name: com.mysql.cj.jdbc.Driver 

 

→ 데이터 모델과 repository 설정

메인 루트에 모델과 저장소 파일 제작

 

../model/User.java

package com.mary.blog.model;
import java.sql.Timestamp;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class User {
	private int id;
	private String username;
	private String password;
	private String email;
	private String profile;
	private Timestamp createDate;
	
}

 

../repository/UserRepository.java (인터페이스)

package com.mary.blog.repository;

import java.util.List;

import com.mary.blog.model.User;

public interface UserRepository {
	public List<User> findAll();
}

 

→ MyBatis를 이용할 매퍼 클래스 제작

resource 폴더 아래에 mapper 폴더 생성

../mapper/user.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="com.mary.blog.repository.UserRepository">
	<select id="findAll" resultType="com.mary.blog.model.User">
    select * from user
  </select>

</mapper>

 

→ 메인 인덱스 제작

파일의 depth를 다음처럼 제작

 

이유는 여기 참고 <<

https://itstudy-mary.tistory.com/174?category=930112

 

스프링부트에서 jsp 파일 만들기

공식적으로 스프링부트는 jsp를 지원하지 않는다. 하지만 한국에서는 jsp를 더 많이 사용하기 때문에 jsp를 사용하는 방법을 알아보자. 리소스 파일 내부에는 다음과 같은 파일을 볼 수 있다. 스프

itstudy-mary.tistory.com

index.jsp

<%@ page language="java" 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">
<title>Insert title here</title>
</head>
<body>
인덱스 페이지 입니다.
</body>
</html>
반응형