사용 도구
- MariaDB
- Docker
- Spring Boot
- Spring Security
Datatbase user 생성
create user 'security'@'%' identified by 'security';
grant all privileges on *.* to 'security'@'%';
create database security;
use security;
MariaDB와 Docker, Spring Boot 프로젝트 연동은 아래 포스팅에서 확인 할 수 있습니다.
https://yundevnote.tistory.com/16
[Docker] Docker와 MariaDB 연동
MariaDB연동(docker) 앞에서 만든 spring boot 프로젝트와 JPA 연동 Database는 Mariadb 사용하며, docker에 띄워서 사용 Docker에 MariaDB 설치 및 실행 docker 이미지 다운로드 docker pull mariadb error 발생..
yundevnote.tistory.com
프로젝트 생성

Spring Boot DevTools : 핫 리로딩(소스파일 수정 후 저장하면 자동으로 리로딩 된다)
Lombok : Getter, Setter, 생성자, Builder 패턴 사용하기 위해서
Spring Data JPA : ORM 사용하기 위해서 쓴다
MySQL Driver : DB 연동을 위해
Spring Security
Mustache : 템플릿 엔진(spring에서 사용하라고 권장하는 템플릿 엔진이다)
Spring Web : 웹과 관련된 어노테이션을 사용하기 위해
머스테치 기본 폴더 : /src/main/resources/
view resolver 설정 : templates (prefix), mustache(suffix)
+view resolver(뷰 리졸버) : 이름으로부터 실제로 사용할 뷰 객체를 결정해주는 애
application.yml
server:
port: 8080
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
spring:
datasource:
driver-class-name: org.mariadb.jdbc.Driver
url: jdbc:mariadb://localhost:4000/security?serverTimezone=Asia/Seoul
username: security
password: security
# pom.xml에 mustache 의존성을 추가해줬기 때문에 자동으로 기본 경로가 잡히고
# 뷰 리졸버 경로도 기본으로 등록되기 때문에 생략 가능
# mvc:
# view:
# prefix: /templates/
# suffix: .mustache
jpa:
hibernate:
ddl-auto: update #create update none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: true
# pom.xml에 spring-boot-starter-data-jpa 의존성 추가 해주고
# application.yml에 jpa 설정해주면, db table을 자동으로 만들어준다
# > ddl-auto: create - table이 있다면, 지우고 다시 만든다
# > ddl-auto: update - table이 있다면, 거기에 업데이트
ddl-auto : create -> 실행 시킬 때마다 새로 만든다. 만들어져 있다면 지우고 새로 만든다
ddl-auto : update -> 실행 시킬 때 변화가 있다면 업데이트
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index page</title>
</head>
<body>
<h1>인덱스 페이지입니다</h1>
</body>
</html>
IndexController.java
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // view를 return
public class IndexController {
// mustache 기본 폴더 src/main/resources/
// view resolver : templates (prefix), .mustache (suffix) 생략가능
@GetMapping({"", "/"})
public String index(){
return "index"; // src/main/resources/templates/index.mustache
}
}
src/main/resources/templates 경로에 있는 index.html / index.mustache 파일을 리턴하겠다.
WebMvcConfig.java
import org.springframework.boot.web.servlet.view.MustacheViewResolver;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
// view resolver를 재설정
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
MustacheViewResolver resolver = new MustacheViewResolver();
resolver.setCharset("UTF-8");
resolver.setContentType("text/html;charset=UTF-8"); // 던지는 data는 html이고, utf-8이다
resolver.setPrefix("classpath:/templates/"); // classpath=프로젝트 경로
resolver.setSuffix(".html"); // .html 파일을 만들어도 mustache가 인식을 한다.
registry.viewResolver(resolver); // registry로 view resolver 등록
}
}
spring boot 실행

기본적으로 security 의존성을 설정하게 되면 홈페이지로 들어가는 모든 주소가 막혀서 인증이 필요한 홈페이지가 된다.
최초 id : user
최초 password : spring boot 실행 시 콘솔에 나오는 password 복사
'웹 프로그래밍 > Spring' 카테고리의 다른 글
[Spring] Spring Validator BindingReuslt/Errors 사용 (0) | 2021.08.24 |
---|---|
[Spring Security] #2 Spring Security 설정 (0) | 2021.06.01 |
[Spring Security] Spring Security란? (0) | 2021.05.14 |
[JPA] JPA(Java Persistence API)란? (0) | 2021.05.04 |
[JPA] JPA를 시작하기 전에 (0) | 2021.05.03 |