关键注解
@SpringBootApplication
包含所有内容:
@Configuration
标记该类作为应用程序上下文的bean定义的来源。
@EnableAutoConfiguration
注解的意思就是Springboot
根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web
,来判断你的项目是否需要添加了webmvc
和tomcat
,就会自动的帮你配置web项目中所需要的默认配置。
@ComponentScan
扫描当前包及其子包下被@Component
,@Controller
,@Service
,@Repository等
注解标记的类并纳入到spring容器中进行管理。是以前的<context:component-scan>
(以前使用在xml中使用的标签,用来扫描包配置的平行支持)。所以本demo中的User为何会被spring
容器管理。。
@RestController
Spring4之后新加的注解,原来返回json需要@ResponseBody和@Controller配合。
@GetMapping
@RequestMapping(value = "/say",method = RequestMethod.GET)等价于:@GetMapping(value = "/say")
@PathVariable:获取url中的数据
@RequestMapping("/getUser/{uid}")
public String getUser(@PathVariable("uid")Integer id, Model model) {
System.out.println("id:"+id);
return "user";
}
访问url:
http://127.0.0.1/user/getUser/1111
@Bean产生一个bean的方法
@Bean明确地指示了一种方法,产生一个bean的方法,并且交给Spring容器管理。支持别名@Bean("xx-name")
@Order加载bean的顺序
加载bean的顺序,按优先级加载,数字越小优先级越高。
@ImportResource导入xml配置文件
@ExceptionHandler和@ControllerAdvice能够集中异常,使异常处理与业务逻辑分离
@RestControllerAdvice
public class JdpExceptionHandler {
/**
* 针对指定的异常进行统一处理
*
* @param ex 方法参数异常
* @return 响应结果
*/
@ExceptionHandler(Exception.class)
@ResponseBody
public JdpRestResponse handlerException(Exception ex) {
JdpRestResponse response = new JdpRestResponse();
response.setSuccess(false);
response.setMessage("server exception, please try again later or contact the administrator");
return response;
}
潜规则
1、Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:
/static
/public
/resources
/META-INF/resources
举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg即可显示图片
2、spring boot默认的配置文件必须是,也只能是application或application-xxx命名的yml文件,不建议properties
3、启动类与扫描包同级(比如要扫描com.jd下的注解)