더북(TheBook)

코드 5-10 데이터베이스 명령을 실행하는 LicenseService 클래스

@Service
public class LicenseService {

    @Autowired
    MessageSource messages;

    @Autowired
    private LicenseRepository licenseRepository;

    @Autowired
    ServiceConfig config;

    public License getLicense(String licenseId, String organizationId) {
        License license = 
            licenseRepository.findByOrganizationIdAndLicenseId(organizationId,
                              licenseId);
        if (null == license) {
            throw new IllegalArgumentException(
                    String.format(messages.getMessage(
                        "license.search.error.message", null, null),
                         licenseId, organizationId));   
        }
        return license.withComment(config.getProperty());
    }

    public License createLicense(License license) {
        license.setLicenseId(UUID.randomUUID().toString());
        licenseRepository.save(license);
        return license.withComment(config.getProperty());
    }

    public License updateLicense(License license) {
        licenseRepository.save(license);
        return license.withComment(config.getProperty());
    }

    public String deleteLicense(String licenseId) {
        String responseMessage = null;
        License license = new License();
        license.setLicenseId(licenseId);
        licenseRepository.delete(license);
        responseMessage = 
           String.format(messages.getMessage(
              "license.delete.message", null, null), licenseId);
        return responseMessage;
    }
}

컨트롤러, 서비스, 리포지터리 클래스들이 스프링 표준 @Autowired 애너테이션을 사용하여 서로 연결되어 있다. 다음 절에서 LicenseService 클래스에서 구성 정보 프로퍼티를 읽는 방법을 살펴보자.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.