专门版本的controller :@RestController
@RequestMapping
@Configuration注解该类,等价 与XML中配置beans;用@Bean标注方法等价于XML中配置bean
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如
异步获取json数据,加上@responsebody后,会直接返回json数据。
@Component:
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共的方法我会用上这个注解
@AutoWired
byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构
造函数进行标注,完成自动装配的工作。
当加上(required=false)时,就算找不到bean也不报错。
造函数进行标注,完成自动装配的工作。
当加上(required=false)时,就算找不到bean也不报错。
用在方法的参数前面。
@RequestParam String a =request.getParameter("a")。
@PathVariable:
路径变量。
RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
//do something;
}
参数与大括号里的名字一样要相同。以上注解的示范
/**
* 用户进行评论及对评论进行管理的 Controller 类;
*/
@Controller
@RequestMapping("/msgCenter")
public class MyCommentController extends BaseController {
@Autowired
CommentService commentService;
@Autowired
OperatorService operatorService;
/**
* 添加活动评论;
*
* @param applyId 活动 ID;
* @param content 评论内容;
* @return
*/
@ResponseBody
@RequestMapping("/addComment")
public Map<String, Object> addComment(@RequestParam("applyId") Integer applyId, @RequestParam("content") String content) {
....
return result;
}
}
@RequestMapping("/list/{applyId}")
public String list(@PathVariable Long applyId, HttpServletRequest request, ModelMap modelMap) {
}
全局处理异常的:
@ControllerAdvice:
包含@Component。可以被扫描到。统一处理异常。
@ExceptionHandler(Exception.class):
/**
* 全局异常处理
*/
@ControllerAdvice
class GlobalDefaultExceptionHandler {
public static final String DEFAULT_ERROR_VIEW = "error";
@ExceptionHandler({TypeMismatchException.class,NumberFormatException.class})
public ModelAndView formatErrorHandler(HttpServletRequest req, Exception e) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("error","参数类型错误");
mav.addObject("exception", e);
mav.addObject("url", RequestUtils.getCompleteRequestUrl(req));
mav.addObject("timestamp", new Date());
mav.setViewName(DEFAULT_ERROR_VIEW);
return mav;
}}
/**
* 全局异常处理
通过@value注解来读取application.properties里面的配置
@Value("${face_api_key}")
private String API_KEY;
@Value("${face_api_secret}")
private String API_SECRET;