@EnableAutoConfiguration
:启用springboot的自动配置,根据所声明的依赖对Spring进行自动配置
@ComponentScan 和
@Component
在应用程序所在的程序包上启用扫描
@Configuration
:允许在上下文中注册额外的bean或导入其他配置类
@RestController
:标记该controller反会json格式,用来直接编写Restful接口
@SpringBootApplication
:标记为启动类
使用ComponentScan和EnableAutoConfiguration代替SpringBootApplication启动
@ComponentScan(basePackages = "com.test.run")//---控制器扫包范围
@EnableAutoConfiguration
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
@ExceptionHandler 表示拦截异常
@ControllerAdvice 是 controller 的一个辅助类,最常用的就是作为全局异常处理的切面类
@ControllerAdvice 可以指定扫描范围
@ControllerAdvice 约定了几种可行的返回值,如果是直接返回 model 类的话,需要使用 @ResponseBody 进行 json 转换
返回 String,表示跳到某个 view
返回 modelAndView
返回 model + @ResponseBody
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@ResponseBody//返回json
public Map<String, Object> exceptionHandler() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("errorCode", "101");
map.put("errorMsg", "系統错误!");
return map;
}
// 返回页面
@ExceptionHandler(NullpointException.class)
public ModelAndView handleControllerException(HttpServletRequest request, Throwable ex) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("/404");
return modelAndView;
}
}