1+ package com .ai .lawyer .global .initData ;
2+
3+ import com .ai .lawyer .domain .member .entity .Member ;
4+ import com .ai .lawyer .domain .member .repositories .MemberRepository ;
5+ import lombok .RequiredArgsConstructor ;
6+ import lombok .extern .slf4j .Slf4j ;
7+ import org .springframework .boot .ApplicationArguments ;
8+ import org .springframework .boot .ApplicationRunner ;
9+ import org .springframework .context .annotation .Profile ;
10+ import org .springframework .core .annotation .Order ;
11+ import org .springframework .security .crypto .password .PasswordEncoder ;
12+ import org .springframework .stereotype .Component ;
13+ import org .springframework .transaction .annotation .Transactional ;
14+
15+ @ Slf4j
16+ @ Component
17+ @ Order (1 )
18+ @ Profile ("!test" )
19+ @ RequiredArgsConstructor
20+ public class InitData implements ApplicationRunner {
21+
22+ private final MemberRepository memberRepository ;
23+ private final PasswordEncoder passwordEncoder ;
24+
25+ @ Override
26+ @ Transactional
27+ public void run (ApplicationArguments args ) {
28+ makeAdmin ();
29+ }
30+
31+ @ Transactional
32+ void makeAdmin () {
33+ long count = memberRepository .count ();
34+ if (count > 0 ) {
35+ log .info ("InitData skipped: users count={}" , count );
36+ return ;
37+ }
38+
39+ Member member = memberRepository .save (
40+ Member .builder ()
41+ 42+ .password (passwordEncoder .encode ("1234" ))
43+ .age (30 )
44+ .gender (Member .Gender .FEMALE )
45+ .name ("admin" )
46+ .role (Member .Role .USER )
47+ .build ()
48+ );
49+
50+ log .warn ("=== Admin user created: {} ===" , member .getLoginId ());
51+ }
52+ }
0 commit comments