01 | 스코프
지금까지 만든 코드에서는 일어나고 있는 일에 관한 정보를 출력하지 않으므로, 클래스들 안에 약간의 로그(기록 활동)를 삽입하여 스프링 컨테이너가 해당 클래스들을 생성하고 사용할 때 무슨 일이 일어나는지 알 수 있게 하자(예제 4-1 참고).
예제 4-1 SearchEngineService.java
package com.apress.isf.spring.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.apress.isf.java.model.Document;
import com.apress.isf.java.model.Type;
import com.apress.isf.java.service.SearchEngine;
import com.apress.isf.spring.data.DocumentDAO;
public class SearchEngineService implements SearchEngine {
private static final Logger log =
LoggerFactory.getLogger(SearchEngineService.class);
private DocumentDAO documentDAO;
public SearchEngineService() {
if (log.isDebugEnabled())
log.debug("SearchEngineService created: " + this);
}
public DocumentDAO getDocumentDAO() {
return documentDAO;
}
public void setDocumentDAO(DocumentDAO documentDAO) {
if (log.isDebugEnabled())
log.debug("Document DAO set: " + documentDAO);
this.documentDAO = documentDAO;
}
public List<Document> findByType(Type documentType) {
List<Document> result = new ArrayList<Document>();
for (Document doc : listAll()) {
if (doc.getType().getName().equals(documentType.getName()))
result.add(doc);
}
return result;
}
public List<Document> listAll() {
return Arrays.asList(documentDAO.getAll());
}
}