本文共 2970 字,大约阅读时间需要 9 分钟。
博主不喜欢说废话,直接开场吧
1、@SpringBootApplication
一般不会主动去使用它,但是要知道它是一个组合注解,@Configuration 、@EnableAutoConfiguration 、@ComponentScan 注解的集合
2、@Configuration
用@Configuration注释类表明是一个配置类,允许在 Spring 上下文中注册额外的 bean 或导入其他配置类。
3、@EnableAutoConfiguration
该注解就是用来开启自动配置的,自动配置原理可以去看一下博主springboot系列记录中的文章
4、@ComponentScan
@ComponentScan用于类或接口上主要是指定扫描路径,spring会把指定路径下带有指定注解的类自动装配到bean容器里。会被自动装配的注解包括@Controller、 @Service、@Component、@Repository等等。其作用等同于<context:component-scan base-package="com.xxx.xxx" />配置
5、@Autowired、@Qualifier
@Autowired它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作,默认是按照类去匹配
当有多个同一类型的Bean时,可以用@Qualifier(“name”)来指定。与@Autowired配合使用
6、@Component,@Respository,@Service,@Controller
@Component
:通用的注解,可标注任意类为 Spring组件。如果一个 Bean 不知道属于哪个层,可以使用@Component
注解标注。@Repository
: 对应持久层即 Dao 层,主要用于数据库相关操作。@Service
: 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。@Controller
: 对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前端页面。7、@RequestMapping
是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
该注解中的属性释义:
8、@ResponseBody
@ResponseBody注解既可以在方法上使用,也可以在类上使用,在类上使用表明该类中所有方法均返回JSON数据,也可以与@Controller注解合并为@RestController。它的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。9、@GetMapping @PutMapping @PostMapping @DeleteMapping
也就是对应HTTP的请求方式,
GET /users
(获取所有学生)POST /users
(创建学生)PUT /users/12
(更新编号为 12 的学生)DELETE /users/12
(删除编号为 12 的学生)以@DeleteMapping为例子来看一下
@DeleteMapping("/users/{userId}")
等价于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)
10、@PathVariable
@PathVariable就是用于获取路径参数
@RequestMapping("/getUserById/{name}") public User getUser(@PathVariable("name") String name){ return userService.getUser(name); }
11、@RequestParam
用于获取查询参数,
语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
12、@RequestBody
不要和@ResponseBody混淆了,@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的),Content-Type 为 application/json 格式;GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
比如前端以post方式传json字符串,此时后端就可以使用@RequestBody来接收
13、@Value、@ConfigurationProperties
这一类注解建议看
14、@DateTimeFormat、@JsonFormat
实体类User有个Date类型的属性birthday,然后用该实体类接收从前端传来的参数,我们会发现报了400异常。
因为前端传去的是字符串类型,而实体类中是Date类型,那么此时就可以使用@DateTimeFormat
已经可以了,但是这种格式不是我们想要的,那么@JsonFormat登场了,timezone:是时间设置为东八区,避免时间在转换中有误差
可见:@DateTimeFormat是前台到后台的时间转换,而@JsonFormat是后台到前台的转换
15、@Import
@Import只能用在类上 ,@Import通过快速导入的方式实现把实例加入spring的IOC容器中
用法:
@Import({ 类名.class , 类名.class... })
转载地址:http://jhiuk.baihongyu.com/