自动连接Abstract类的多个实现

时间:2016-10-24 07:03:22

标签: spring spring-mvc

我一直致力于Spring MVC项目结构,其中多个具体服务类从Abstract Class扩展而来。
enter image description here

在我的控制器中,我试图自动绘制抽象类并根据用户选择选择实现。这是Controller类的相关部分:

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

我希望控制器使用基于用户输入的实现,并在进一步实现中使用Abstract类LogAnalyzer引用。

我的逻辑有效吗?你能指导我吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你的正确要求,你需要做的是创建几个Spring-MVC控制器,每个用例一个,有自己的基本路径,并在那里自动装配抽象服务类(或服务接口) ),基于具体服务的bean名称(如果在具体服务类上使用注释@Service,则bean名称应该是具体服务类的名称,以小写字母开头)。

例如,如下所示:

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

并在控制器中

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

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