关于springboot中@RequestMapping通用访问方法

关于springboot中@RequestMapping通用访问


父类定义通用访问方法

/**
     * 列表显示
     * resultFul风格 - /show/{rfName}
     * @param model
     * @param rfName 访问地址名称
     * @return
     */
    @UserLoginToken //验证token
    @GetMapping(Url.RF_SHOW)
    public String show( Model model, @PathVariable String rfName)  {
        try{
        //通过springboot自带工具SpringUtil获取创建好的controller
            Object objController = SpringUtil.getBean(this.getClass());
            //获取子类getService方法
            Method getService = objController.getClass().getDeclaredMethod("getService", null);
            //获取子类service对象
            Object obj = getService.invoke(objController, null);
            //获取对象方法-Constants.METHOD_FIND_ALL = "findAll()"
            //需要使用service的那个方法
            Method me = obj.getClass().getDeclaredMethod(Constants.METHOD_FIND_ALL, null);
            //执行方法并返回值
            List<T> list = (List<T>) me.invoke(obj, null);
            model.addAttribute(Constants.LIST, list);
            return rfName + Url.SHOW;
        }catch (Exception e){
            return MessageUtil.getUrlMessageByException(e, model);
        }
    }

子类使用

/**
 *子类继承父类通用方法
 */
@Controller
public class ClearerInfoController  extends CcController<ClearerInfo> {
    @Autowired
    private ClearerInfoService service;

	/**
     * 父类调取此方法获取service
     * @return
     */
    public ClearerInfoService getService() {
        return service;
    }
    public void setService(ClearerInfoService service) {
        this.service = service;
    }
}

有什么需要改进的,请留言

你可能感兴趣的:(springboot)