์๋น์ค ํ์ผ์ ๊ฐ์ ํ์์ผ๋ก ๋จ! ๊ทธ ์ดํ์ ์๋น์ค impl, ๋ ํฌ์งํ ๋ฆฌ ์ปจํธ๋กค๋ฌ ๋ค ๋๊ฐ์ ํ์์ผ๋ก ๋ง์ถฐ์ฃผ๊ธฐ!
package store.esgseed.api.emission.service;
import java.util.List;
import store.esgseed.api.common.domain.Messenger;
import store.esgseed.api.emission.domain.EmissionDTO;
public interface EmissionService {
Messenger save(EmissionDTO emission);
Messenger delete(Long id);
Messenger update(EmissionDTO emission);
Messenger findbyId(Long id);
Messenger findAll();
}
import java.util.List;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import store.esgseed.api.common.domain.Messenger;
import store.esgseed.api.emission.domain.EmissionDTO;
import store.esgseed.api.emission.repository.EmissionRepository;
@Service
@RequiredArgsConstructor
public class EmissionServiceImpl implements EmissionService {
private final EmissionRepository emissionRepository;
@Override
public Messenger save(EmissionDTO emission) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'save'");
}
@Override
public Messenger delete(Long id) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'delete'");
}
@Override
public Messenger update(EmissionDTO emission) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'update'");
}
@Override
public Messenger findbyId(Long id) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'findbyId'");
}
@Override
public Messenger findAll() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'findAll'");
}
}
public class EmissionServiceImpl implements EmissionService-์ด๊ฑฐ ์ด์ฉํด์ add๋๋ฅด๊ณ ๋ค ํ์ ๋ง์ถฐ์ฃผ๊ธฐ
package store.esgseed.api.emission.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import store.esgseed.api.common.domain.Messenger;
import store.esgseed.api.emission.domain.EmissionDTO;
import store.esgseed.api.emission.domain.EmissionEntity;
import store.esgseed.api.emission.service.EmissionService;
@Repository
public class EmissionRepository {
public Messenger save(EmissionDTO emission) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'save'");
}
public Messenger delete(Long id) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'delete'");
}
public Messenger update(EmissionDTO emission) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'update'");
}
public Messenger findbyId(Long id) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'findbyId'");
}
public Messenger findAll() {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'findAll'");
}
๋ ํฌ์งํ ๋ฆฌ๋ impl์ฌ์ฉํด์ ๋ฃ๊ณ ๋์ค์ @override ์ง์ฐ๊ณ ๊ทธ ๋ค์ impliment ๋ ์ง์ฐ๊ธฐ
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.RequiredArgsConstructor;
import store.esgseed.api.common.domain.Messenger;
import store.esgseed.api.emission.domain.EmissionDTO;
import store.esgseed.api.emission.service.EmissionService;
@RestController
@RequestMapping("/emissions")
@RequiredArgsConstructor
public class EmissionController {
private final EmissionService emissionService;
@PostMapping("")
public Messenger save() {
emissionService.save(null);
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
}
@DeleteMapping("/{id}")
public Messenger delete(Long id) {
emissionService.delete(id);
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
}
@PutMapping("/{id}")
public Messenger update(EmissionDTO emission) {
emissionService.update(emission);
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
}
@GetMapping("/id/{id}")
public Messenger findbyId(Long id) {
emissionService.findbyId(id);
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
}
@GetMapping("/all")
public Messenger findAll() {
emissionService.findAll();
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
}
}
์ปจํธ๋กค๋ฌ๋ ๋์ผํ๊ฒ ํ๊ณ ๊ฐ๊ฐ ๋ง๊ฒ @postmapping get delete ๋ง๊ฒ ๋ฃ์ด ์ฃผ๊ณ ์์ ๋ด์ฉ ๋ฃ์ด ์ฃผ๊ธฐ , ๋์ค์๋ ์์์ ์๋์์ฑ๋จ
package store.esgseed.api.emission.domain;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
@Data
@Entity
@Table(name = "emissions")
public class EmissionEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String site;
private Double scope1Tco2e;
private Double scope2Tco2e;
private Double totalScope12Tco2e;
private Double scope3Tco2e;
}
์ํฐํฐ ๋จผ์ ์์ฑํ๊ณ dto, vo ๋์ผํ๊ฒ ๋ง๋ค๊ธฐ
package store.esgseed.api.emission.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class EmissionDTO {
private String site;
private Double scope1Tco2e;
private Double scope2Tco2e;
private Double totalScope12Tco2e;
private Double scope3Tco2e;
}
package store.esgseed.api.emission.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class EmissionVO {
private String site;
private Double scope1Tco2e;
private Double scope2Tco2e;
private Double totalScope12Tco2e;
private Double scope3Tco2e;
}
์์ ๋ค์ด๊ฐ ๋ด์ฉ ์ฐ์ ๋ด๊ฐ ์์ ํด์ค, ๋์ค์๋ ์์์ ์์ฑ๋ ๊ฒ
package store.esgseed.api.emission.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import lombok.RequiredArgsConstructor;
import store.esgseed.api.common.domain.Messenger;
import store.esgseed.api.emission.domain.EmissionDTO;
import store.esgseed.api.emission.service.EmissionService;
@RestController
@RequestMapping("/emissions")
@RequiredArgsConstructor
public class EmissionController {
private final EmissionService emissionService;
@PostMapping("")
public Messenger save(@RequestBody EmissionDTO emission) {
return emissionService.save(emission);
}
@DeleteMapping("/{id}")
public Messenger delete(@PathVariable Long id) {
return emissionService.delete(id);
}
@PutMapping("/{id}")
public Messenger update(@RequestBody EmissionDTO emission) {
return emissionService.update(emission);
}
@GetMapping("/id/{id}")
public Messenger findbyId(@PathVariable Long id) {
return emissionService.findbyId(id);
}
@GetMapping("/all")
public Messenger findAll() {
return emissionService.findAll();
}
๊ทธ ์์ ๋ด์ฉ์ ๋ด๊ฐ ๊ฐ๊ฐ ์ฑ์ธ ๊ฒ
์ปจ-์-๋
๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ๊ฒ์ ์๊ฐํ์ฌ ๊ฐ๊ฐ
์ปจํธ๋กค๋ฌ๋
emissionRepository.update(emission);
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
\\
๋ ํฌ์งํ ๋ฆฌ๋
return Messenger.builder().code(200).message("์ฑ๊ณต").build();
์ด๋ ๊ฒ ๋ฃ์ด์ ์์ ํ๋ค
@ApiApplication.java ์ด๊ฑฐ๋ฅผ ์คํํ๋ฉด @EmissionEntity.java ์ด๋๋ก ํ
์ด๋ธ์ด ์์ฑ๋๊ณ @HomeController.java ์ด๋๋ก ์ค์จ๊ฑฐ๊ฐ ์์ฑ๋๋๋ก ํด์ค
-cursor ์ ์ํค๊ณ ์ด์ ๋ ์๋ ํ์ต๋๋๋ก ํ ๊ฒ!