当前位置: 首页 > news >正文

有哪些做鸭子网站/seo推广一年要多少钱

有哪些做鸭子网站,seo推广一年要多少钱,wordpress图片如何存储,网站建设的6个基本步骤对于ControllerAdvice注解,我们使用较多和熟悉的是结合ExceptionHandler注解用于全局异常的处理。 其实,ControllerAdvice拆分开来就是Controller Advice;Advice又是Spring Aop中的切面,用于封装一个切面所有属性的,…

对于@ControllerAdvice注解,我们使用较多和熟悉的是结合@ExceptionHandler注解用于全局异常的处理。

其实,ControllerAdvice拆分开来就是Controller + Advice;Advice又是Spring Aop中的切面,用于封装一个切面所有属性的,包括切入点和需要织入的切面逻辑。@ControllerAdvice的用法基本是将其声明在某个bean上,然后在该bean的方法上使用其他的注解来指定不同的织入逻辑。不过这里@ControllerAdvice并不是使用AOP的方式来织入业务逻辑的,而是Spring内置对其各个逻辑的织入方式进行了内置支持。

在Spring 3.2中,新增了@ControllerAdvice、@RestControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping、@PostMapping, @GetMapping注解中。

下面针对@ExceptionHandler、@InitBinder、@ModelAttribute这三个注解进行说明:

  • @ExceptionHandler,用于捕获Controller中抛出的指定类型的异常,从而达到不同类型的异常区别处理的目的;
  • @InitBinder,用于request中自定义参数解析方式进行注册,从而达到自定义指定格式参数的目的;
  • @ModelAttribute,表示其标注的方法将会在目标Controller方法执行之前执行。

先看@ControllerAdvice的源码:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface ControllerAdvice {@AliasFor("basePackages")String[] value() default {};@AliasFor("value")String[] basePackages() default {};Class<?>[] basePackageClasses() default {};Class<?>[] assignableTypes() default {};Class<? extends Annotation>[] annotations() default {};
}

传递basePackage,声明的类(是一个数组)指定的Annotation参数,具体参考:spring framework doc

@ExceptionHandler

捕获Controller中抛出的指定类型的异常,可以处理全局和局部异常。

/*** 公共异常处理类* @author wangchengxi* @date 2019/1/6 11:20*/
@ControllerAdvice
public class BaseExceptionHandler {// @ExceptionHandler : 该方法需要处理那种异常@ExceptionHandler(Exception.class)@ResponseBodypublic Result error1(Exception e) {return new Result(false, StatusCode.ERROR, e.getMessage());}// 空指针异常处理@ExceptionHandler(NullPointerException.class)public Result error2(Exception e) {return new Result(false, StatusCode.ERROR, e.getMessage());}// 运行时异常处理@ExceptionHandler(RuntimeException.class)public Result error3(Exception e) {return new Result(false, StatusCode.ERROR, e.getMessage());}
}

 @InitBinder

绑定自定义的一些特殊参数,这些是Spring没有提供直接支持的,比如Date。

@ControllerAdvice
public class BaseExceptionHandler {   // 应用到所有@RequestMapping注解方法,在其执行之前初始化数据绑定器@InitBinderpublic void initWebBinder(WebDataBinder binder){//对日期的统一处理binder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));//添加对数据的校验//binder.setValidator();}
}

 @ModelAttribute

结合@ControllerAdvice,用于方法声明上,该方法将会在@ControllerAdvice所指定的范围内的所有接口方法执行之前执行,并且@ModelAttribute标注的方法的返回值还可以供给后续会调用的接口方法使用。

@ControllerAdvice
public class BaseExceptionHandler { // 把值绑定到Model中,使全局@RequestMapping可以获取到该值@ModelAttributepublic void addAttribute(Model model) {model.addAttribute("attribute",  "The Attribute");}
}// 如果使用name或value属性,则指定的是返回值的名称
如:
@ModelAttribute(value = "The Attribute")

也可以定义在方法参数上:

  @RequestMapping(method = RequestMethod.GET)public ModelAndView detail(@RequestParam("id") long id, @ModelAttribute("message") String message) {ModelAndView view = new ModelAndView("user");User user = userService.detail(id);view.addObject("user", user);return view;}

 以上是我根据自己的学习总结已经在网上查找的一些相关资料文档做的小结。

 

http://www.jmfq.cn/news/5174245.html

相关文章:

  • 站长工具搜一搜/中国 日本 韩国
  • 网站建设方案项目书/营销活动
  • 网站空间 程序有限制吗/青岛百度seo
  • 网站系统繁忙是什么意思/seo企业站收录
  • 商标设计免费/杭州seo网站推广排名
  • 网站程序盗版/百度推广账号注册流程
  • 东莞网站搜索排名/天津搜狗seo推广
  • 模板ppt免费/武汉seo系统
  • 手机app开发语言/山东服务好的seo公司
  • 建设网站具备的知识/最新国际新闻事件今天
  • 中小企业组网/windows优化大师可靠吗
  • 衡阳网站定制/上海培训机构整顿
  • 做网站的是怎么赚钱/电子商务
  • 专业做医院网站建设/指数
  • 北京最大的网站建设有限公司/长春网站建设公司哪家好
  • 做外单网站亚马逊/优化英文
  • 免费网站建设企业/百度在线客服系统
  • 平泉县住房和城乡建设局网站/南宁推广软件
  • 做坏事网站/名优网站关键词优化
  • 山西省网站建设/百度推广渠道
  • 建设医院网站多少钱/中央电视台新闻联播
  • wordpress 整站采集/河北网络科技有限公司
  • 如何做农产品网站/建立网站费用大概需要多少钱
  • 广州制作公司网站的公司/seo优化排名易下拉效率
  • 网站建设绿茶/免费自己建网页
  • 安徽网站建设公司/六安seo
  • 做计量检定的网站/网赌怎么推广拉客户
  • 洛阳市河阳建设工程有限公司网站/引擎优化
  • 利用vs做网站/厦门网络推广外包
  • 杭州网站建设公司哪家好/win7系统优化大师