SpringBoot常见注解
@Repository、@Service、@Controller,它们分别对应存储层Bean,业务层Bean,和展示层Bean。
1.@Repository
1.1在此接口中注解了@Repository之后,在Service层才能利用Spring的容器注入
1.2注解修饰哪个类,则表明这个类具有对对象进行CRUD(增删改查)的功能
1.3@Repository 可有可无,可以消去依赖注入的报错信息。
加了@Repository时:
无报错
未加@Repository时:
报错
但程序都可正常运行
1.4@Component 和 @Repository 效果都是一样的,只是为了声明为bean
1.5@Repository需要在Spring中配置扫描地址,所以经常与@mapper注解一起使用或者在主类中使用@mapperScan(二选一)。然后生成Dao层的Bean才能被注入到Service层中。
1.5.1使用@Mapper与@Repository
1.5.2.主类中使用@MapperScan
2.@Service
对于 service 层的类,在类上用 @Service 注解声明
3.@Controller
处理http请求
4.@ResponseBody
1.在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。
2.@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
5.@RestController
Spring4之后新加的注解,作用和原来的@ResponseBody配合@Controller相同。用于返回Json
6.@RequestBody
1.项目中最常用的接收参数的注解
- 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上, 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
使用@RequestBody注解时,要注意两个地方:1.请求头中的content-type; 2.请求方式。
a. content-type : multipart/form-data
这种格式使用@RequestBody处理不了。
b. content-type : application/x-www-form-urlencoded
form表单形式提交的数据格式,可以使用@RequestBody,也可以使用其他注解例如@RequestParam, @ModelAttribute进行接收。
c. content-type : 其他数据格式
必须使用@RequestBody进行接收。
7.@RequestMapping
@RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求
8.@GetMapping
@GetMapping
组合注解,相当于@RequestMapping(method = RequestMethod.GET)
直接从URL获得数据,以www.xxx.com/?id=1类似这种形式传输。
get常用于取回数据,post用于提交数据
9.@PostMapping
组合注解,相当于@RequestMapping(method = RequestMethod.POST)
请求会从body部分拿到数据,好处是一些不希望用户看到的数据会放在body里面传输。
get常用于取回数据,post用于提交数据