Spring boot2.0 入門(七)-使用工廠模式響應請求
阿新 • • 發佈:2019-01-10
有時候只想隨便做個微服務,也並不想使用什麼Rest風格,就所有介面都使用一個欄位進行標識(例子使用method),然後呼叫相應的介面方法,以下程式碼所有的http請求都會進入demo這個方法,然後通過請求帶的請求標識,通過Spring IOC容器獲取相應的Service Bean(這裡為Service中的impl取名xxxxProcessor),然後執行相應的方法,這裡所有的Service都繼承了BaseInterface介面,實現process方法。
@RestController
@RequestMapping("/test")
public class CommandController implements ApplicationContextAware
{
private ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
{
this.applicationContext = applicationContext;
}
@RequestMapping("/test")
public testResult demo(@RequestBody Map<String, String> params)
{
BaseInterface processor = (BaseInterface) applicationContext.getBean(params.get("method")+"Processor");
return processor.process(params);
}
}