728x90
package com.danal.chatting.util;
import com.danal.chatting.Role.Role;
import com.danal.chatting.entity.Authority;
import com.danal.chatting.entity.member.Member;
import com.danal.chatting.member.service.MemberService;
import lombok.RequiredArgsConstructor;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.persistence.EntityManager;
import javax.transaction.Transactional;
@Component
@RequiredArgsConstructor
public class InitDB {
private final InitService initService;
@PostConstruct
public void init() {
initService.dbInit();
// initService.dbInit2();
}
@Component
@Transactional
@RequiredArgsConstructor
static class InitService {
private final EntityManager em;
private final MemberService memberService;
private final PasswordEncoder passwordEncoder;
// 메소드 분리
private void initMember() {
Member admin = Member.createMember("admin@admin.com","admin",passwordEncoder.encode("admin"), Authority.createAuthority(Role.ROLE_ADMIN));
Member user = Member.createMember("user@user.com","user",passwordEncoder.encode("user"), Authority.createAuthority(Role.ROLE_USER));
em.persist(admin);
em.persist(user);
}
public void dbInit() {
initAuthority();
initMember();
}
private void initAuthority() {
Authority role_admin = Authority.createAuthority(Role.ROLE_ADMIN);
Authority role_manager = Authority.createAuthority(Role.ROLE_MANAGER);
Authority role_user = Authority.createAuthority(Role.ROLE_USER);
em.persist(role_admin);
em.persist(role_manager);
em.persist(role_user);
em.flush();
}
}
}
728x90
'백엔드 > Spring(Boot)' 카테고리의 다른 글
Spring Swagger에서 Pageable 사용 (0) | 2022.03.07 |
---|---|
Spring Data Jpa repository 통합 (0) | 2022.02.23 |
swagger 파라미터 안보이게 하기 (0) | 2022.01.21 |
스프링 AOP 포인트 컷 외부 설정 (0) | 2021.11.03 |
스프링 AOP 순서 설정 (0) | 2021.11.03 |