zoukankan      html  css  js  c++  java
  • 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配置的属性的值。

    13.@Validated注解
    用于注入数值校验的注解(JSR303数据校验)

    14.@PropertySource注解
    用于加载指定的配置文件,例如@PropertySource(value = {"classpath:person.properties"})

    15.@ImportResource注解
    用于导入Spring的配置文件,让配置文件里面的内容生效

    Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,它也不能自动识别;想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上,例如:@ImportResource(locations = {"classpath:beans.xml"})

    16.@Configuration注解
    用于指明当前类是一个配置类;就是来替代之前的Spring配置文件。

    17.@Conditional注解
    条件注解,用于判断当前的配置类是否满足条件,如果满足条件那么此配置类就是生效了。

    18.@ConfigurationProperties(prefix = "spring.http.encoding")
    用于从配置文件中获取指定的值和bean的属性进行绑定

  • 相关阅读:
    第一册:lesson forty five。
    第一册:lesson forty three。
    马化腾2015港大演讲。
    Swing实现文件选择(目录选择)附导出
    SVN强制注释
    Websphere内存溢出的日志
    sql server2008 搭建链接服务器成功后查询时报Cannot obtain the schema rowset "DBSCHEMA_TABLES_INFO" for OLE DB provider "SQLNCLI10" for linked server "XXXXX". 的解决方法
    UML图例
    jSP的3种方式实现radio ,checkBox,select的默认选择值。
    通过js子页面回写父页面,改变父页面控件的值
  • 原文地址:https://www.cnblogs.com/jasonboren/p/12264009.html
Copyright © 2011-2022 走看看