zoukankan      html  css  js  c++  java
  • spring boot常用注解

      最近公司开展springboot 项目,之前也对其比较感兴趣,自己看了些资料,查了些资料。加之做项目时踩了一些坑,就决定写些博客记录记录,好记性不如烂笔头。记得之前有位大神对我说过: springboot 就是对spring 的简化和集成,在spring 的基础上去掉繁琐的配置等。所以说其本质还是跟spring,spring mvc 息息相关的。springboot 中自己就集成了 tomcat , jdk ,servlet等。通过注解,main方法程序主入口来自启动程序。所以这篇博客就说说spring boot 中常用的注解吧(其中有些本就是spring,spring MVC 中的)

    @Service: 注解在类上,表示这是一个业务层bean
    
    @Controller:注解在类上,表示这是一个控制层bean
    
    @Repository: 注解在类上,表示这是一个数据访问层bean
    
    @Component: 注解在类上,表示通用bean ,value不写默认就是类名首字母小写
    
    @Value:注解在变量上,从配置文件中读取
    
    @Bean: 注解在方法上,声明当前方法返回一个Bean
    
    @ConfigurationProperties: 赋值,将注解转换成对象。给对象赋值
    
    @RestController:@RestController 是一个结合了 @ResponseBody 和 @Controller 的注解(像:resetful接口调用时,返回的是json等就使用)
    
    @ComponentScan:注解在类上,扫描标注了@Controller等注解的类,注册为bean 。
    
    @suppresswarnings:抑制警告
    
    @Transactional:事务注解
    @Scope:注解在类上,描述spring容器如何创建Bean实例。
    
        1、singleton: 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例
    
        2、prototype:表示每次获得bean都会生成一个新的对象
    
        3、request:表示在一次http请求内有效(只适用于web应用)
    
        4、session:表示在一个用户会话内有效(只适用于web应用)
    
        5、globalSession:表示在全局会话内有效(只适用于web应用)
    
    在多数情况,我们只会使用singleton和prototype两种scope,如果未指定scope属性,默认为singleton
    
    @PathVariable和@RequestParam:
        都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,URL写法不同。使用@RequestParam时,URL是这样的:http://host:port/path?参数名=参数值.使用@PathVariable时,URL是这样的:http://host:port/path/参数值.当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value="username",required=false). 不写的时候也可以获取到参数值,但是必须名称对应。参数可以省略不写
    
    @RequestMapping: 和请求报文是做对应的
        1、value,指定请求的地址 
        2、method ,请求方法类型 这个不写的话,自适应:get或者post
        3、consumes ,请求的提交内容类型 
        4、produces ,指定返回的内容类型 仅当request请求头中的(Accept)类型中包含该指定类型才返回
        5、 params ,指定request中必须包含某些参数值 
        6、headers ,指定request中必须包含指定的header值
        7、 name , 指定映射的名称  
        @RequestMapping(method = RequestMethod.GET)/@GetMapping
    @SpringBootApplication:约定优于配置  
    
    @SpringBootApplication=@ComponentScan+@Configuration+@EnableAutoConfiguration。
       放在主程序入口类上, 主程序入口类(启动类) 放在root 包下,这样程序启动时所有的相关配置,类都能扫描,查找到
    
    @EnableAutoConfiguration:
       启用 Spring 应用程序上下文的自动配置,试图猜测和配置您可能需要的bean。自动配置类通常采用基于你的classpath 和已经定义的 beans 对象进行应用。被 @EnableAutoConfiguration 注解的类所在的包有特定的意义,并且作为默认配置使用。通常推荐将 @EnableAutoConfiguration 配置在 root 包下,这样所有的子包、类都可以被查找到。
    
    @Configuration:
        注解的类配置组件扫描指令。@ComponentScan 注解会自动扫描指定包下的全部标有 @Component注解的类,并注册成bean,当然包括 @Component下的子注解@Service、@Repository、@Controller。注解在类上,表示这是一个IOC容器,相当于spring的配置文件,java配置的方式。 IOC容器的配置类一般与 @Bean 注解配合使用, 用 @Configuration 注解类等价与 XML 中配置 beans,用@Bean 注解方法等价于 XML 中配置 bean。
    
    @Responsebody:
         注解表示该方法的返回的结果直接写入 HTTP 响应正文(ResponseBody)中,一般在异步获取数据时使用,通常是在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上@Responsebody 后返回结果不会被解析为跳转路径,而是直接写入HTTP 响应正文中。(@RequestMapping(value = "/change",method = RequestMethod.POST,produces = "application/json;charset=utf-8"))
    
    @EnablCaching:
        @EnableCaching注解是spring framework中的注解驱动的缓存管理功能。自spring版本3.1起加入了该注解。如果你使用了这个注解,那么你就不需要在XML文件中配置cache manager了。
    
    @Autowired:
        按类型注入.默认属性required= true;当不能确定 Spring 容器中一定拥有某个类的Bean 时,可以在需要自动注入该类 Bean 的地方可以使用 @Autowired(required = false),这等于告诉Spring:在找不到匹配Bean时也不抛出BeanCreationException 异常。
  • 相关阅读:
    JavaScript深入解读
    CentOS7上安装与配置Tomcat8与MySQL5.7
    码云的初步使用
    MySQL安装与初步操作
    自定义消息队列
    用Executors工具类创建线程池
    Java中的BlockingQueue队列
    Restful对于URL的简化
    docker push 实现过程
    通过docker-machine和etcd部署docker swarm集群
  • 原文地址:https://www.cnblogs.com/jingjiren/p/10334252.html
Copyright © 2011-2022 走看看