사용할 기본 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
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>
반응형
'SpringBoot' 카테고리의 다른 글
톰캣과 서비스 어노테이션 (0) | 2020.07.17 |
---|---|
Consider defining a bean of type 'package' in your configuration [Spring-Boot] 해결 (0) | 2020.07.17 |
SpringBoot에서 MySQl, MyBatis 연결하기 (0) | 2020.07.13 |
스프링부트에서 jsp 파일 만들기 (0) | 2020.07.13 |
스프링부트 viewresolver와 Mustache (0) | 2020.07.13 |