스프링 프레임 워크를 사용하여 Java 1.5에서 개발 한 웹 응용 프로그램이 있습니다. 응용 프로그램에는 일련의 정보가 재 그룹화되고 사용자가 일부 상태를 수정할 수있는 간단한 페이지 인 "대시 보드"가 포함되어 있습니다. 관리자는 세 개의 대시 보드에 대해 데이터베이스에 로깅 시스템을 추가하기를 원합니다. 각 대시 보드에는 정보가 다르지만 로그는 날짜와 사용자의 로그인으로 추적해야합니다.스프링을 사용하여 전략 패턴을 효율적으로 구현하는 방법은 무엇입니까?
interface DashboardLog {
void createLog(String login, Date now);
}
// Implementation for one dashboard
class PrintDashboardLog implements DashboardLog {
Integer docId;
String status;
void createLog(String login, Date now){
// Some code
}
}
class DashboardsManager {
DashboardLog logger;
String login;
Date now;
void createLog(){
logger.log(login,now);
}
}
class UpdateDocAction{
DashboardsManager dbManager;
void updateSomeField(){
// Some action
// Now it's time to log
dbManagers.setLogger = new PrintDashboardLog(docId, status);
dbManagers.createLog();
}
}
Appcontext.xml : I 따라서 의존성을 사용하지 않는이 솔루션에서
<bean id="dashboardManagers" class="...DashboardManagers" />
내가하고 싶은 무엇
이 같은 종류의 전략 패턴을 구현하는 것입니다 주입. 이런 식으로 "올바른"(좋은 연습, 성능, ...)? DI를 사용할 수있는 더 좋은 방법이 있습니까?
참고 : 생성자 및 getter/setter와 같은 기본 사항을 작성하지 않았습니다.
userId 만 전달하고 데이터베이스에서 날짜를 설정하는 것이 좋습니다. 그것은 "프로그래머 schenanigans"의 가능성을 제한합니다. – DwB