SpringBoot常用注解及其应用

SpringBoot常用注解及其应用

常用SpingBoot注解列表如下:

注解名称 作用 备注
@Configuration 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。 该注解的配置类有如下要求:1、不能是匿名类;2、不能是final类型;3、必须是静态类。
@SpringBootApplication @SpringBootApplication是一个复合注解,包括@ComponentScan(自动扫描包)、@SpringBootConfiguration(标志当前类的配置类)、@EnableAutoConfiguration(打开 Spring Boot 的自动配置机制)。 如果该包或者上级包使用了@SpringBootApplication(@SpringBootApplication包含了@ComponentScan、@Configuration、@EnableAutoConfiguration注解)则无需手动添加@ComponentScan、@Configuration、@EnableAutoConfiguration注解,否则手动添加需要的注解。
@ComponentScan ComponentScan做的事情就是告诉Spring从哪里找到bean、自动扫描发现可配置使用的bean。 如果该包或者上级包使用了@SpringBootApplication(@SpringBootApplication包含了@ComponentScan、@Configuration、@EnableAutoConfiguration注解)则无需手动添加@ComponentScan注解,否则手动添加@ComponentScan注解并指定那个bean所在的包。
@SpringBootConfiguration 标志当前类的配置类,该类继承自@Configuration且作用一致,都是用于标志当前类中的配置类;并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。 如果该包或者上级包使用了@SpringBootApplication(@SpringBootApplication包含了@ComponentScan、@Configuration、@EnableAutoConfiguration注解)则无需手动添加@EnableAutoConfiguration注解,否则手动添加@SpringBootConfiguration注解
@EnableAutoConfiguration 打开 SpringBoot 的自动配置机制,载入应用程序所需的所有Bean 如果该包或者上级包使用了@SpringBootApplication(@SpringBootApplication包含了@ComponentScan、@Configuration、@EnableAutoConfiguration注解)则无需手动添加@EnableAutoConfiguration注解,否则手动添加@EnableAutoConfiguration注解。
@Autowired @Autowired注释进行自动注入时,spring容器中匹配的候选Bean数目必须有且仅有一个。当找不到一个匹配的Bean时,spring容器将抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean。 @Autowired可作用于构造器、方法、参数、属性;作用地方不同,范围不同。
@RestController @RestController是自Spring4来新的注解,它将类标记为控制器,其中每个方法都返回一个域对象而不是视图。它是@controller和@responseBody的缩写。 如果添加在类上则不能再添加 @Controller或者@responseBody注解,否则会报错。
@Controller @Controller的作用是把用户提交来的请求通过对URL的匹配,分配个不同的接收器,再进行处理,然后向用户返回结果。他的重点就在于如何从HTTP请求中获得信息,提取参数,并分发给不同的处理服务。 一般配合@RequestMapping使用,如果类上添加了@RestController则方法上不能再添加 @Controller或者@responseBody注解,否则会报错。
@RequestMapping 通过该注解映射到Controller层的指定URL @RequestMapping分为类级别和方法级别的
@ResponseBody @responseBody一般是作用在方法上的,加上该注解表示该方法的返回结果直接写到Http response Body中,常用在ajax异步请求(转json或者xml)中。 注解之后将不会通过ViewResolver直接返回的是数据
@RequestBody @requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。 前端json字符串中的key必须对应user中的属性名,否则是请求映射不上。
@PathVariable 绑定函数中的参数用于获取参数 默认的情况下,Spring会对@PathVariable注解的变量进行自动赋值,当然也可以指定@PathVariable使用哪一个URL中的变量,例如@PathVariable(“uname”) String username
@Service 标注这个是一个业务类 添加在实现类上
@Component 把普通bean实体实例化到Spring容器中 需要该类时,必须把改类放入Spring容器中否则会找不到该类。

你可能感兴趣的:(SpringBoot注解)