2016-10-24 1 views
0

여러 추상 서비스 클래스가 추상 클래스에서 확장되는 스프링 MVC 프로젝트 구조에서 작업 해 왔습니다.
enter image description here자동 배선 Abstract 클래스의 다중 구현

내 컨트롤러에서 나는 추상 클래스를 autowire하고 사용자 선택에 따라 구현을 선택하려고합니다. 여기서 컨트롤러 클래스의 중요한 부분이다 :

@Controller 
@RequestMapping("/") 
public class DashboardController { 
    @Autowired 
    LogAnalyzerAbstract logAnalyzer;//new LogAnalyzer(); 
     private static final Log logger =LogFactory.getLog(DashboardController.class); 
.... 
logAnalyzer.process(); 
} 

I은 ​​사용자 입력을 기반으로 구현을 사용하는 제어기와 상기 원하는 implementaion의 추상 클래스 Log Analyzer에 참조 번호를 사용했다.

내 논리가 유효합니까? 너 나를 인도 할 수 있니?

답변

0

당신이해야 할 일을 이해했다면, 각각의 유스 케이스에 하나씩, 자체 기본 경로로 여러 Spring-MVC 컨트롤러를 생성하고 거기에 추상 서비스 클래스 (또는 서비스)를 autowire 인터페이스), 구체적인 서비스의 bean 이름을 기반으로합니다 (구체적인 서비스 클래스에 @Service 주석을 사용하는 경우 bean 이름은 소문자로 시작하는 구체적인 서비스 클래스의 이름이어야합니다). 다음과 같은 예를 들어

, 뭔가 : 답장을

@Service 
public class MyFirstUseCaseService extends AbstractService { 
... 
} 

컨트롤러에

@Controller 
@RequestMapping("/firstUseCaseBaseUrl") 
MyFirstUseCaseController { 

    @Autowired 
    @Qualifier("myFirstUseCaseService") 
    private AbstractService service; 
.... 
} 
+0

감사합니다. 그렇게하면 같은 작업을 수행하는 컨트롤러가 너무 많아집니다. – Sohil

관련 문제