spring:
config:
import: optional:file:.env.development[.properties]
custom:
rootuser:
email: ${INITIAL_ADMIN_EMAIL}
password: ${INITIAL_ADMIN_PASSWORD}
username: ${INITIAL_ADMIN_USER_NAME}
INITIAL_ADMIN_EMAIL=wjdtn747@naver.com
INITIAL_ADMIN_PASSWORD=wjdtn3902
INITIAL_ADMIN_USER_NAME=RootUser
@ConfigurationProperties 클래스 정의
。진입점 클래스에 @ConfigurationPropertiesScan 지정 및 해당 클래스 정의
@Getter
@Setter
@ConfigurationProperties(prefix = "custom.rootuser")
public class RootUserProperties {
private String email;
private String password;
private String username;
}
@Configuration
@RequiredArgsConstructor
public class DataInitConfig {
private final EmailWhiteListRepository emailWhiteListRepository;
private final PasswordEncoder passwordEncoder;
private final RootUserProperties rootUserProperties;
@Bean
@Transactional
CommandLineRunner init(UserRepository userRepository) {
return args -> {
if (userRepository.count() < 1) {
User build1 = User.builder()
.name(rootUserProperties.getUsername())
.nickname("정수리")
.major(Major.BACK_END)
.email(rootUserProperties.getEmail())
.password(passwordEncoder.encode(rootUserProperties.getPassword()))
.build();
build1.updateRole(Role.SUPER_ADMIN);
userRepository.save(build1);
emailWhiteListRepository.save(
EmailWhiteList.builder()
.email("wjdtn747@gmail.com")
.major(Major.BACK_END)
.name("이정수")
.build()
);
}
};
}
}