美文网首页
spring boot 第二章 常用注解

spring boot 第二章 常用注解

作者: Ace_Wang | 来源:发表于2018-07-27 22:16 被阅读0次

    1、@SpringBootApplication

    在使用 Springboot 框架进行开发的时候,通常我们会在 main 函数上添加 @SpringBootApplication 注解

    首先看一下“SpringBootApplication”源码,

    @SpringBootApplication是@Configuration@EnableAutoConfiguration@ComponentScan三个标签功能的集合

    @Configuration:表示将该类作用springboot配置文件类。

    @EnableAutoConfiguration:表示程序启动时,自动加载springboot默认的配置。

    @ComponentScan:表示程序启动是,自动扫描当前包及子包下所有类。

    2、@EnableDiscoveryClient  && @EnableEurekaClient

    @EnableDiscoveryClient与@EnableEurekaClient都是服务发现的注解,区别在于@EnableDiscoveryClient基于spring-cloud-commons, @EnableEurekaClient基于spring-cloud-netflix。

    就是如果选用的注册中心是eureka,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。

    3、@EnableScheduling

    通过@EnableScheduling注解开启对计划任务的支持

    4、@MapperScan

    通过使用@MapperScan可以指定要扫描的Mapper类的包的路径

    5、@EnableSwagger2Doc

        用于自动生成api文档

    6、@target(用于定义注解)

    用于设定注解使用范围

    7、@Retention(用于定义注解)

        定义了该Annotation被保留的时间长短:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,而另一些在class被装载时将被读取(请注意并不影响class的执行,因为Annotation与class在使用上是被分离的)。使用这个meta-Annotation可以对 Annotation的“生命周期”限制。

    8、@Documented注解

        @Documented注解表明这个注释是由 javadoc记录的

    9、@Inherited

    @Inherited 元注解是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。 

    如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

    10、@EnableTransactionManagement

    spring boot 的事务管理标签

    11、@Service、@Controller、@Repository

    @Service用于标注业务层组件,@Controller用于标注控制层组件(如struts中的action),@Repository用于标注数据访问组件,即DAO组件,而@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注

    13、@table  、@Id、@Column

        @table实体类映射数据库表,@Id映射主键,@Column映射列

    14、@RequestMapping

    @RequestMapping是一个用来处理请求地址映射的注解,可用于类跟方法

    15、@Autowired

    自动注入,相当于xxx x = new xxx();与他类似的标签还有@Resource,两者之间的区别就不细讲了

    16、@Responsebody

    @Responsebody 注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。 

    如果返回值是html标签的页面,就不要使用他;

    17、@PathVariable、@RequestParam, @RequestBody

    三者都是获取发送参数的方法,区别在于:

    @Pathvariable

    当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上。

    @RequestParam 

    A) 常用来处理简单类型的绑定,通过Request.getParameter() 获取的String可直接转换为简单类型的情况( String--> 简单类型的转换操作由ConversionService配置的转换器来完成);因为使用request.getParameter()方式获取参数,所以可以处理get 方式中queryString的值,也可以处理post方式中 body data的值;

    B)用来处理Content-Type: 为application/x-www-form-urlencoded编码的内容,提交方式GET、POST;

    C) 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;

    @RequestBody

    该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;

    它是通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。

    因为配置有FormHttpMessageConverter,所以也可以用来处理application/x-www-form-urlencoded的内容,处理完的结果放在一个MultiValueMap里,这种情况在某些特殊需求下使用

    相关文章

      网友评论

          本文标题:spring boot 第二章 常用注解

          本文链接:https://www.haomeiwen.com/subject/uytnmftx.html