1.https://start.spring.io/ 링크로 들어가서 옵션을 선택한 뒤, add dependencices를 선택하고 원하는 기능을 추가하고 generate를 한다.
2. 다운한 파일을 인텔리제이에서 오픈하고, JDK를 지정해준다.
controller, dto, entity, repository, service, type 패키지를 추가한다.
DMakerController를 작성한다. Controller는 @RestController로 만든다.
@RestController = @Controller, @ResponseBody
@Controller
:@Component
의 타입 중 하나@ResponseBody
: 사용자의 요청을 받아 json으로 응답을 해줌
jdbc:h2:mem:1f9d34c5-3068-4c62-8bbd-a637235629d5
package com.fastcampus.programming.dmaker.entity;
import com.fastcampus.programming.dmaker.type.DeveloperLevel;
import com.fastcampus.programming.dmaker.type.DeveloperSkillType;
import lombok.*;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedDate;
import javax.persistence.*;
import java.time.LocalDateTime;
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@EntityListeners(AuditingEntityListener.class)
public class Developer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
protected Long id;
@Enumerated(EnumType.STRING)
private DeveloperLevel developerLevel;
@Enumerated(EnumType.STRING)
private DeveloperSkillType developerSkillType;
private Integer experience;
private String memberId;
private String name;
private Integer age;
@CreatedDate
private LocalDateTime createAt;
@LastModifiedDate
private LocalDateTime updateAt;
}
package com.fastcampus.programming.dmaker;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
@EnableJpaAuditing
@SpringBootApplication
public class DmakerApplication {
public static void main(String[] args) {
SpringApplication.run(DmakerApplication.class, args);
}
}
자동으로 생성시점(createAt)과 수정시점(updateAt)저장하기 위해
package com.fastcampus.programming.dmaker.type;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum DeveloperLevel {
NEW("신입 개발자"),
JUNIOR("주니어 개발자"),
SENIOR("시니어 개발자");
private final String description;
}
package com.fastcampus.programming.dmaker.type;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum DeveloperSkillType {
BACK_END("백엔드 개발자"),
FRONT_END("프론트엔드 개발자"),
FULL_STACK("풀스택 개발자");
private final String description;
}
package com.fastcampus.programming.dmaker.repository;
import com.fastcampus.programming.dmaker.entity.Developer;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface DeveloperRepository
extends JpaRepository<Developer, Long> {
}
@Repository
어노테이션을 붙여줘야 한다.package com.fastcampus.programming.dmaker.service;
import com.fastcampus.programming.dmaker.dto.CreateDeveloper;
import com.fastcampus.programming.dmaker.entity.Developer;
import com.fastcampus.programming.dmaker.repository.DeveloperRepository;
import com.fastcampus.programming.dmaker.type.DeveloperLevel;
import com.fastcampus.programming.dmaker.type.DeveloperSkillType;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@Service
@RequiredArgsConstructor//기본 생성자를 자동으로 만들어줌
public class DMakerService {
//DI(의존성 주입)
private final DeveloperRepository developerRepository;
@Transactional
public void createDeveloper(CreateDeveloper.Request request){
Developer developer = Developer.builder()
.developerLevel(DeveloperLevel.JUNIOR)
.developerSkillType(DeveloperSkillType.FRONT_END)
.experienceYears(2)
.name("Olaf")
.age(5)
.build();
developerRepository.save(developer);
}
}
@RequiredArgsConstructor
, private final DeveloperRepository developerRepository
@GetMapping("/create-developers")
public List<String> createDevelopers(){
// GET /developers HTTP/1.1
dMakerService.createDeveloper();
return Collections.singletonList("Olaf");
}
controller에 service 주입 후 사용
주입 : @RequiredArgsConstructor , private final DMakerService dMakerService (@Autowired private DMakerService dMakerService와 같은 역할)
정리 : 엔티티 클래스 만들기 -> Repository 만들기 -> Service에서 호출 -> Controller에서 사용
SQL 확인
- application.yml 수정
- console에서 확인 가능