728x90
인프런 - Spring Boot JWT Tutorial
※ 위 강의를 수강하면서 진행한 실습 정리 ※
1. application.properties 파일에 DB 정보 추가하기
나는 강의와 달리 MySQL을 사용하여 DB 설정이 다르다.
처음에는 실행해도 테이블이 생성이 되지 않아 다른 자료를 참고하다가 추가해주어야 하는 정보를 찾았다.
(참고 : https://dev-coco.tistory.com/85#head2)
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.format_sql=true
- show-sql : true 설정시 JPA 쿼리문 확인 가능
- ddl-auto : DDL(create, alter, drop) 정의시 DB의 고유 기능을 사용
- format-sql : JPA의 구현체인 Hibernate가 동작하면서 발생한 SQL의 가독성을 높여준다.
Hibernate란?
: 자바 언어를 위한 객체 관계 매핑 프레임워크 (출처 : Wiki)
2. Entity 생성
강의에서는 Lombok을 사용해서 코드를 단순화했지만 나는 사용하지 않았다.
Lombok을 사용하지 않는 대신 Constructor와 Getter, Setter를 생성해주었다.
1. User Entity
package board.boardspring.entity;
import jakarta.persistence.*;
import java.util.Set;
@Entity
@Table(name = "user")
public class User {
@Id
@Column(name = "user_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userID;
@Column(name = "username", length = 50, unique = true)
private String username;
@Column(name = "password", length = 100)
private String password;
@Column(name = "activated")
private boolean activated;
@ManyToMany
@JoinTable(
name = "user_authority",
joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "user_id")},
inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "authority_name")}
)
private Set<Authority> authorities;
//Constructor
public User() {
}
public User(Long userID, String username, String password, boolean activated, Set<Authority> authorities) {
this.userID = userID;
this.username = username;
this.password = password;
this.activated = activated;
this.authorities = authorities;
}
//Getter & setter
public Long getUserID() {
return userID;
}
public void setUserID(Long userID) {
this.userID = userID;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isActivated() {
return activated;
}
public void setActivated(boolean activated) {
this.activated = activated;
}
public Set<Authority> getAuthorities() {
return authorities;
}
public void setAuthorities(Set<Authority> authorities) {
this.authorities = authorities;
}
}
2. Authority Entity
package board.boardspring.entity;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
@Entity
@Table(name = "authority")
public class Authority {
@Id
@Column(name = "authority_name", length = 50)
private String authorityName;
//Contructor
public Authority() {
}
public Authority(String authorityName) {
this.authorityName = authorityName;
}
//Getter & Setter
public String getAuthorityName() {
return authorityName;
}
public void setAuthorityName(String authorityName) {
this.authorityName = authorityName;
}
}
3. Spring 실행하기
728x90
'Spring' 카테고리의 다른 글
[Spring] Docker로 띄운 MySQL JDBC로 연결하기 (0) | 2024.02.13 |
---|---|
[Spring] 프로젝트 생성하기 (0) | 2024.02.12 |