원래 하나의 클래스에는 비슷한 기능의 함수들만 보관하는게 관습임
물론 보관상이나 찾기에도 쉬움
@PostMapping("/add")
String addPost(
@RequestParam(name ="title") String title,
@RequestParam(name ="price") int price){
System.out.println(title);
System.out.println(price);
Item addItem = new Item(title,price);
itemRepository.save(addItem);
return "redirect:/list";
여기에보면 DB입출력기능 html 보내주는기능이 섞여있음
이렇게 섞여있으면 안좋음
그래서 따로 자바클래스를 만들어서 빼줘야함
Service
검사하거나 DB입출력하는것을 비즈니스 로직이라고 부름
그 비즈니스로직을 담는 클래스를 Service라고 부름
ItemService 자바파일을 만들어주고
DB입출력기능인 코드들을 가져와주기
@Service 붙여주기 (@Repository,@Component 써도됨)
@Service
@RequiredArgsConstructor
public class ItemService {
private final ItemRepository itemRepository;
public void saveItem(String title,Integer price){
System.out.println(title);
System.out.println(price);
Item addItem = new Item(title,price);
itemRepository.save(addItem);
}
}
파라미터를 받아와야 쓸수있기때문에 파라미터도 등록해줌
public void saveItem(String title,Integer price){
itemRepository도 받아와야하기때문에 등록해주기
어떻게? JPA 3step!기억하자!
[Spring Boot] JPA로 DB데이터 입출력하기
JPA 사용방법 3step 1. repository 만들기 1-1 자바폴더에다가 테이블명Repository interface 파일 만듬1-2 extends JpaRepositoryimport org.springframework.data.jpa.repository.JpaRepository;public interface ItemRepository extends JpaRepos
k-kk.tistory.com
근데!
근데! 이미 파일은 만들어져있으니까
private final ItemRepository itemRepository; 등록
@RequiredArgsConstructor 이거 붙여주면 됨
그럼 써보자~!
근데 다른 클래스의 함수를 사용하려면
Age object = new Age(); 이런식으로 new 해서 뽑아쓰는거라고 생각하는데
원래는 다른 class의 함수를 사용할때는 new class(). 이런식으로 쓰면 비효율적임
요청이 100만개 들어오면 100만개 이렇게 써야함
다른데서 미리 new 해놓고 재사용하는게 좋음 관습임.
3step
1.서비스클래스에 @Service 붙이기
2. 함수를 쓰고싶은 곳에가서 변수등록(@RequiredArgsConstructor 이것도 있어야함 )
3. 원하는곳에서 변수.함수() 쓰면됨
@RequiredArgsConstructor
@Controller
public class ItemController {
private final ItemRepository itemRepository;
private final ItemService itemService;
@PostMapping("/add")
String addPost(@RequestParam(name ="title") String title,
@RequestParam(name ="price") int price){
itemService.saveItem(title,price);
return "redirect:/list";
}
'SPRING' 카테고리의 다른 글
[Spring Boot]상품수정기능 (0) | 2025.03.23 |
---|---|
[Spring Boot] dependency injection이란? -수정중- (0) | 2025.03.21 |
[Spring Boot] 예외발생시/ REST API 서버에서의 예외처리 (0) | 2025.03.20 |
[Spring Boot] 예외발생시/ 타임리프로 에러페이지만들기(짱쉬움;) (0) | 2025.03.20 |
[Spring Boot] 상품상세페이지2 타임리프로 링크만들기 (0) | 2025.03.20 |