PROGRAMMING/슈퍼코딩 강의 정리
[슈퍼코딩]95-1강 스프링부트 Service Layer 살펴보기
ITSCASSIE1107
2024. 1. 26. 00:12
반응형
Controller가 웹에서 어떻게 들어오는지 어떻게 반환하는지만 신경쓰고 싶어서 비즈니스 로직을 옮기는 행위를 하는거임.
트랜잭션: 데이터 처리 원자성을 보장하기 위한 여러 작업 -> 하나의 작업으로 묶는 것
store_sales sql문 실행
JdbcConfig 설정 바꿔야함



before
package com.github.supercoding.service;
import com.github.supercoding.repository.ElectonicStoreItemRepository;
import com.github.supercoding.repository.ItemEntity;
import com.github.supercoding.web.dto.Item;
import com.github.supercoding.web.dto.ItemBody;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class ElectronicStoreItemService {
private ElectonicStoreItemRepository electonicStoreItemRepository;
public ElectronicStoreItemService(ElectonicStoreItemRepository electonicStoreItemRepository) {
this.electonicStoreItemRepository = electonicStoreItemRepository;
}
public List<Item> findAllItem() {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
return itemEntities.stream().map(Item::new).collect(Collectors.toList());
}
public Integer saveItem(ItemBody itemBody) {
ItemEntity itemEntity = new ItemEntity(null, itemBody.getName(), itemBody.getType(),
itemBody.getPrice(), itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
//이 부분 추가
return electonicStoreItemRepository.saveItem(itemEntity);
}
public Item findItemById(String id) {
Integer idInt = Integer.parseInt(id);
ItemEntity itemEntity = electonicStoreItemRepository.findItemById(idInt);
Item item = new Item(itemEntity);
return item;
}
public List<Item> findItemsByIds(List<String> ids) {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
List<Item> itemsfounded = itemEntities.stream()
.map(Item::new)
.filter((item -> ids.contains(item.getId()))).collect(Collectors.toList());
return itemsfounded;
}
public void deleteItem(String id) {
Integer idInt = Integer.parseInt(id);
electonicStoreItemRepository.deleteItem(idInt);
}
public Item updateItem(String id, ItemBody itemBody) {
Integer idInt = Integer.valueOf(id);
ItemEntity itemEntity = new ItemEntity(idInt, itemBody.getName(), itemBody.getType(), itemBody.getPrice(),
itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
ItemEntity itemEntityUpdated = electonicStoreItemRepository.updateItemEntity(Integer.valueOf(id), itemEntity);
Item itemUpdated = new Item(itemEntityUpdated);
return itemUpdated;
}
}
import com.github.supercoding.repository.ElectonicStoreItemRepository;
import com.github.supercoding.repository.ItemEntity;
import com.github.supercoding.web.dto.Item;
import com.github.supercoding.web.dto.ItemBody;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service
public class ElectronicStoreItemService {
private ElectonicStoreItemRepository electonicStoreItemRepository;
public ElectronicStoreItemService(ElectonicStoreItemRepository electonicStoreItemRepository) {
this.electonicStoreItemRepository = electonicStoreItemRepository;
}
public List<Item> findAllItem() {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
return itemEntities.stream().map(Item::new).collect(Collectors.toList());
}
public Integer saveItem(ItemBody itemBody) {
ItemEntity itemEntity = new ItemEntity(null, itemBody.getName(), itemBody.getType(),
itemBody.getPrice(), itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
//이 부분 추가
return electonicStoreItemRepository.saveItem(itemEntity);
}
public Item findItemById(String id) {
Integer idInt = Integer.parseInt(id);
ItemEntity itemEntity = electonicStoreItemRepository.findItemById(idInt);
Item item = new Item(itemEntity);
return item;
}
public List<Item> findItemsByIds(List<String> ids) {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
List<Item> itemsfounded = itemEntities.stream()
.map(Item::new)
.filter((item -> ids.contains(item.getId()))).collect(Collectors.toList());
return itemsfounded;
}
public void deleteItem(String id) {
Integer idInt = Integer.parseInt(id);
electonicStoreItemRepository.deleteItem(idInt);
}
public Item updateItem(String id, ItemBody itemBody) {
Integer idInt = Integer.valueOf(id);
ItemEntity itemEntity = new ItemEntity(idInt, itemBody.getName(), itemBody.getType(), itemBody.getPrice(),
itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
ItemEntity itemEntityUpdated = electonicStoreItemRepository.updateItemEntity(Integer.valueOf(id), itemEntity);
Item itemUpdated = new Item(itemEntityUpdated);
return itemUpdated;
}
}
after
ElectronicStoreItemServie 추가 +ElectronicStoreItemService 삭제 + private ElectonicStoreItemRepository electonicStoreItemRepository; 이것도 없앰
package com.github.supercoding.service;
import com.github.supercoding.repository.ElectonicStoreItemRepository;
import com.github.supercoding.repository.ItemEntity;
import com.github.supercoding.web.dto.Item;
import com.github.supercoding.web.dto.ItemBody;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ElectronicStoreItemService {
private ElectonicStoreItemRepository electonicStoreItemRepository; //이 부분도 없앨 예정
private ElectronicStoreItemService electonicStoreItemService;
//밑에 부분 아예 없앤다고 함.ElectronicStoreItemService
public ElectronicStoreItemService(ElectonicStoreItemRepository electonicStoreItemRepository) {
this.electonicStoreItemRepository = electonicStoreItemRepository;
}
public List<Item> findAllItem() {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
return itemEntities.stream().map(Item::new).collect(Collectors.toList());
}
public Integer saveItem(ItemBody itemBody) {
ItemEntity itemEntity = new ItemEntity(null, itemBody.getName(), itemBody.getType(),
itemBody.getPrice(), itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
//이 부분 추가
return electonicStoreItemRepository.saveItem(itemEntity);
}
public Item findItemById(String id) {
Integer idInt = Integer.parseInt(id);
ItemEntity itemEntity = electonicStoreItemRepository.findItemById(idInt);
Item item = new Item(itemEntity);
return item;
}
public List<Item> findItemsByIds(List<String> ids) {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
List<Item> itemsfounded = itemEntities.stream()
.map(Item::new)
.filter((item -> ids.contains(item.getId()))).collect(Collectors.toList());
return itemsfounded;
}
public void deleteItem(String id) {
Integer idInt = Integer.parseInt(id);
electonicStoreItemRepository.deleteItem(idInt);
}
public Item updateItem(String id, ItemBody itemBody) {
Integer idInt = Integer.valueOf(id);
ItemEntity itemEntity = new ItemEntity(idInt, itemBody.getName(), itemBody.getType(), itemBody.getPrice(),
itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
ItemEntity itemEntityUpdated = electonicStoreItemRepository.updateItemEntity(Integer.valueOf(id), itemEntity);
Item itemUpdated = new Item(itemEntityUpdated);
return itemUpdated;
}
}
import com.github.supercoding.repository.ElectonicStoreItemRepository;
import com.github.supercoding.repository.ItemEntity;
import com.github.supercoding.web.dto.Item;
import com.github.supercoding.web.dto.ItemBody;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ElectronicStoreItemService {
private ElectonicStoreItemRepository electonicStoreItemRepository; //이 부분도 없앨 예정
private ElectronicStoreItemService electonicStoreItemService;
//밑에 부분 아예 없앤다고 함.ElectronicStoreItemService
public ElectronicStoreItemService(ElectonicStoreItemRepository electonicStoreItemRepository) {
this.electonicStoreItemRepository = electonicStoreItemRepository;
}
public List<Item> findAllItem() {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
return itemEntities.stream().map(Item::new).collect(Collectors.toList());
}
public Integer saveItem(ItemBody itemBody) {
ItemEntity itemEntity = new ItemEntity(null, itemBody.getName(), itemBody.getType(),
itemBody.getPrice(), itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
//이 부분 추가
return electonicStoreItemRepository.saveItem(itemEntity);
}
public Item findItemById(String id) {
Integer idInt = Integer.parseInt(id);
ItemEntity itemEntity = electonicStoreItemRepository.findItemById(idInt);
Item item = new Item(itemEntity);
return item;
}
public List<Item> findItemsByIds(List<String> ids) {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
List<Item> itemsfounded = itemEntities.stream()
.map(Item::new)
.filter((item -> ids.contains(item.getId()))).collect(Collectors.toList());
return itemsfounded;
}
public void deleteItem(String id) {
Integer idInt = Integer.parseInt(id);
electonicStoreItemRepository.deleteItem(idInt);
}
public Item updateItem(String id, ItemBody itemBody) {
Integer idInt = Integer.valueOf(id);
ItemEntity itemEntity = new ItemEntity(idInt, itemBody.getName(), itemBody.getType(), itemBody.getPrice(),
itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
ItemEntity itemEntityUpdated = electonicStoreItemRepository.updateItemEntity(Integer.valueOf(id), itemEntity);
Item itemUpdated = new Item(itemEntityUpdated);
return itemUpdated;
}
}
ElectronicStoreItemServie 생성자 추가 그러면 밑에 빨간글자로 바뀌는 거 다 바꿔줘야함
package com.github.supercoding.service;
import com.github.supercoding.repository.ElectonicStoreItemRepository;
import com.github.supercoding.repository.ItemEntity;
import com.github.supercoding.web.dto.Item;
import com.github.supercoding.web.dto.ItemBody;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ElectronicStoreItemService {
private ElectronicStoreItemService electonicStoreItemService;
public ElectronicStoreItemService(ElectronicStoreItemService electonicStoreItemService) {
this.electonicStoreItemService = electonicStoreItemService;
}
public List<Item> findAllItem() {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
return itemEntities.stream().map(Item::new).collect(Collectors.toList());
}
public Integer saveItem(ItemBody itemBody) {
ItemEntity itemEntity = new ItemEntity(null, itemBody.getName(), itemBody.getType(),
itemBody.getPrice(), itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
//이 부분 추가
return electonicStoreItemRepository.saveItem(itemEntity);
}
public Item findItemById(String id) {
Integer idInt = Integer.parseInt(id);
ItemEntity itemEntity = electonicStoreItemRepository.findItemById(idInt);
Item item = new Item(itemEntity);
return item;
}
public List<Item> findItemsByIds(List<String> ids) {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
List<Item> itemsfounded = itemEntities.stream()
.map(Item::new)
.filter((item -> ids.contains(item.getId()))).collect(Collectors.toList());
return itemsfounded;
}
public void deleteItem(String id) {
Integer idInt = Integer.parseInt(id);
electonicStoreItemRepository.deleteItem(idInt);
}
public Item updateItem(String id, ItemBody itemBody) {
Integer idInt = Integer.valueOf(id);
ItemEntity itemEntity = new ItemEntity(idInt, itemBody.getName(), itemBody.getType(), itemBody.getPrice(),
itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
ItemEntity itemEntityUpdated = electonicStoreItemRepository.updateItemEntity(Integer.valueOf(id), itemEntity);
Item itemUpdated = new Item(itemEntityUpdated);
return itemUpdated;
}
}
import com.github.supercoding.repository.ElectonicStoreItemRepository;
import com.github.supercoding.repository.ItemEntity;
import com.github.supercoding.web.dto.Item;
import com.github.supercoding.web.dto.ItemBody;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ElectronicStoreItemService {
private ElectronicStoreItemService electonicStoreItemService;
public ElectronicStoreItemService(ElectronicStoreItemService electonicStoreItemService) {
this.electonicStoreItemService = electonicStoreItemService;
}
public List<Item> findAllItem() {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
return itemEntities.stream().map(Item::new).collect(Collectors.toList());
}
public Integer saveItem(ItemBody itemBody) {
ItemEntity itemEntity = new ItemEntity(null, itemBody.getName(), itemBody.getType(),
itemBody.getPrice(), itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
//이 부분 추가
return electonicStoreItemRepository.saveItem(itemEntity);
}
public Item findItemById(String id) {
Integer idInt = Integer.parseInt(id);
ItemEntity itemEntity = electonicStoreItemRepository.findItemById(idInt);
Item item = new Item(itemEntity);
return item;
}
public List<Item> findItemsByIds(List<String> ids) {
List<ItemEntity> itemEntities = electonicStoreItemRepository.findAllItems();
List<Item> itemsfounded = itemEntities.stream()
.map(Item::new)
.filter((item -> ids.contains(item.getId()))).collect(Collectors.toList());
return itemsfounded;
}
public void deleteItem(String id) {
Integer idInt = Integer.parseInt(id);
electonicStoreItemRepository.deleteItem(idInt);
}
public Item updateItem(String id, ItemBody itemBody) {
Integer idInt = Integer.valueOf(id);
ItemEntity itemEntity = new ItemEntity(idInt, itemBody.getName(), itemBody.getType(), itemBody.getPrice(),
itemBody.getSpec().getCpu(), itemBody.getSpec().getCapacity());
ItemEntity itemEntityUpdated = electonicStoreItemRepository.updateItemEntity(Integer.valueOf(id), itemEntity);
Item itemUpdated = new Item(itemEntityUpdated);
return itemUpdated;
}
}



반응형