Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 弹簧-@控制器建议使用_Spring_Spring Mvc - Fatal编程技术网

Spring 弹簧-@控制器建议使用

Spring 弹簧-@控制器建议使用,spring,spring-mvc,Spring,Spring Mvc,我有上传图像的要求。这里涉及两件事: 1.将映像推送到映像服务器 2.将图像数据保存到数据库 此映像推送逻辑是通用的,在所有控制器中都有引用。我只想在一个拦截器中使用带有@ControllerAdvice的单独控制器来维护这个映像推送逻辑 在委托给相关控制器之前,请求处理带有@ControllerAdvice类注释的推送逻辑,然后将结果数据传递给相关控制器 在此方面的任何帮助都将不胜感激。拦截器是您正在寻找的 看看这个例子: @Configuration @EnableWebMvc @Compo

我有上传图像的要求。这里涉及两件事: 1.将映像推送到映像服务器 2.将图像数据保存到数据库

此映像推送逻辑是通用的,在所有控制器中都有引用。我只想在一个拦截器中使用带有@ControllerAdvice的单独控制器来维护这个映像推送逻辑

在委托给相关控制器之前,请求处理带有@ControllerAdvice类注释的推送逻辑,然后将结果数据传递给相关控制器


在此方面的任何帮助都将不胜感激。

拦截器是您正在寻找的

看看这个例子:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages="myapp.server.controller") 
public class AppConfig extends WebMvcConfigurerAdapter {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new ImageUploadInterceptor());
    }
}
现在我们定义拦截器:

@Component
public class ImageUploadInterceptor extends HandlerInterceptorAdapter {
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

        //Upload image here

        return true;
    }
}

这能满足您的需要吗?

现在我的代码如下所示

@Controller
public class StoreController{

@Autowired services..

@RequestMapping("/store/image")

public ModelAndView saveStoreImage(@ModelAttribute("imageUpload") final ImageUpload,BindingResult){
//现在,首先将推送映像推送到content server 使用ProcessBuilder调用.sh文件。它将返回状态代码0(0表示已成功将图像上载到静态图像服务器)

//现在创建真实图像obj

final Image image = new Image(); // Image is my own domain
image.setEntityId(storeId);
image.setImageUri("/images/testImage.png");
imageService.save(image);
//此图像uri是我们之前推送的具有名称的图像路径

//现在创建一个服务,将图像保存到数据库中

}

}
上述代码在所有控制器中重复

@控制器 公共类耦合控制器{

@Autowired Services....


@ReqMapping("/coupon/image")



  public ModelAndView saveCouponImage((@ModelAttribute("imageUplod") final ImageUpload,BindingResult){


 // same push logic like above executing sh file..is common always
//and then create Image and populate data save into DB

  }
    }
现在,我想用@ControllerAdvice维护一个类的公共图像上传(push)逻辑,并将图像数据传递给相关的控制器

谢谢,
Syamala.

什么是“图像推送逻辑”?接收图像就像为控制器方法定义参数一样简单。您面临的问题是什么?您尝试过什么吗?