常用注解
@springBootApplication 系统启动类注解,此注解是个组合注解,包括了: @SpringBootConfiguration,@EnableAutoConfiguration,@ConmentScan三个注解的组合。
@SpringBootConfiguration 继承至@Configuration,对于熟悉spring的开发者而言,此标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。
@EnableAutoConfiguration 此注解就是SpringBoot 能够自动进行配置的魔法所在,通过此注解能够将所有符合自动条件的Bean的定义加载到spring容器中。
@ComponentScan 会扫描当前包及其子包下被@Component,@Controller,@Service,@Repository等注解标记的类并纳入到spring容器中进行管理。
@Controller 和 @RestController的区别
@Controller返回json需要@ResponseBody来配合,用来处理http请求的对象,与@RequestMapping结合使用
@RestController 是spring4之后出现的。替代原有@Controller,不需要配置@ResponseBody,默认返回Json格式
@RequestMapping
一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径
常见属性:
value: 指定请求的实际地址;
method: 指定请求的method类型, GET、POST、PUT、DELETE等请求方法;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
以下是简化版请求注解:
@GetMapping 等同于 @RequestMapping(method = RequestMethod.GET)
@PostMapping 等同于 @RequestMapping(method = RequestMethod.POST)
@PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE)
@PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)
@RequestBody和@ResponseBody
@RequestBody注解允许request的参数在reqeust体中,常常结合前端POST请求,进行前后端交互。
@ResponseBody注解支持将的参数在reqeust体中,通常返回json格式给前端。
@PathVariable、@RequestParam、@RequestAttribute
@PathVariable用来接收参数,如/detail/xxxxx 可作用在url路径上
@RequestParam 用来接收URL中的参数,如/param?id=xxxx 参数拼接在路径后,
@RequestAttribute用于访问由过滤器或拦截器创建的、预先存在的请求属性,效果等同与request.getAttrbute().
@Component、@Service、@Repository
申明一个单例的bean类并纳入spring容器中,后两者继承于@Component
@Component 最普通的组件,可以被注入到spring容器进行管理
@Repository 作用于持久层
@Service 作用于业务逻辑层
例如配置类等通常使用@Component
。