springboot中的相关注解

springboot中的相关注解

  1. @SpringBootApplication注解 标注在启动类上

    分析如下:
    @SpringBootApplication是一个复合注解,包括@ComponentScan(组件扫描),@SpringBootConfiguration(springboot配置),@EnableAutoConfiguration(自动配置注解)。
    1.@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。
    2.@EnableAutoConfiguration的作用启动自动的配置。
    @EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web,来判断你的项目是否需要添加了webmvc和tomcat,就会自动的帮你配置web项目中所需要的默认配置。
    3.@ComponentScan,扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。是以前的<context:component-scan>(以前在xml中使用的标签,用来扫描包配置的平行支持)。

2.@ResponseBody 注解
在使用@RequestMapping后,返回值通常解析为跳转路径,加上@esponsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@Responsebody后,会直接返回json数据。该注解一般会配合@RequestMapping一起使用。

3.@Autowired注解
自动装配注解。默认按类型进行匹配,它在容器中查找匹配的bean,当且仅有一个匹配的bean时,spring将其注入到@Autowired标注的变量中。自动装配注解默认的是去容器中找bean,如果没有找到,将会报错,如果想让它既是没有找到也不报错,那么只需要将required属性设置为false即可,即@Autowired(required=false),这样设置过后,找不到则会是null。

4.@Qualifier注解
指定注入bean的名称,按照名称来进行注入。它和@Autowired注解一起联合使用,用于注入特定名称的bean。

5.@Resource注解
它和自动注解非常类似,只不过resource注解是按照类型和名称去进行装配的,而Autowired是自动进行装配。
它的详细用法:
1.@Resource后面没有任何内容时,默认通过name属性去匹配bean,找不到在按照type去匹配。 2.指定了name或者type则根据指定的名称或者type去匹配。 3.指定了name和type则根据指定的name和type去匹配bean,任意一个没有匹配成功都失败。
@Autowired和@Resource的区别

1.@Autowired默认按照type方式去匹配bean,@Resource默认按照name方式去匹配bean。  
2.@Autowired是spring的注解,而@Resource是j2ee的注解。

注:Spring是属于第三方的,而j2ee是java自己的东西,因此在使用这两个注解的时候建议使用@Resource注解,因为这样可以减少和Spring之间的耦合。

6.@Controller注解
用于定义控制器类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类上表明这个类是控制器类,通常方法需要配合注解@RequestMapping使用。

7.@RestController注解
用于标注控制层组件,@ResponseBody和@Controller的组合形式,表示这个控制器的所有方法返回均为json数据。

8.@Service注解
一般用于修饰service层的组件,直接将一个java类注入到spring容器中。
它标注在xx.java上时主要做了两件事:1.声明这个类是一个bean,然后其他类就可以通过自动注入的方式去引入;2.这个类在bean中的名字就是类名小写。
原先在使用配置文件时,使用注解时需要<context:component-scan base-package="包名" >来表示我要使用注解了,不然的话无法识别注解。

9.@Repository注解
用于标注在数据访问层的bean,使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

10.@Component注解
组件注解,将它标注在类上就表示它是一个bean了。

11.@Bean注解
用于给容器中添加组件, @Bean标注在方法上,表示将这个方法的返回值加到容器中;容器中这个组件默认的id就是方法名,用@Bean标注方法等价于XML中配置的bean。

12.@Value注解
注入Spring boot application.properties配置的属性的值。

猜你喜欢

转载自www.cnblogs.com/jasonboren/p/12264009.html