SpringBoot 常用注解

  • @SpringBootApplication
  • @Bean
  • @ComponentScan
  • @ControllerAdvice
  • @ExceptionHandler
  • @ResponseBody
  • @Qualifier
  • 注入(@Autowired和@Resource)

@SpringBootApplication

  • @SpringBootApplication 注解等价于已默认属性使用@Configuration、@EnableAutoConfiguration、@ComponentScan。通常使用在有main方法中类的注解
package com.muscleape.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class DemoApplication { public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

@Bean

  • 产生一个bean的方法,并且交给Spring容器管理;

  • 可以理解为用Spring的时候xml里面的标签;

  • 该注解是用在方法上的,就是用来产生一个Bean;

  • 该注解分为两类:

    • 1、使用Bean,即是把已经在xml文件中配置好的Bean哪里用,完成属性、方法的组装;例如:@Autowired和@Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
    • 2、注册Bean,@Componenet,@Repository,@Controller,@Service,@Configuration这些注解都是把要实例化的对象转化成一个Bean,放在IOC容器中,等需要使用的时候,会和上面的@Autowired、@Resource配合到一起,把对象、属性、方法完美组装;
    @Bean(name = "clientbootstrap")
    public Bootstrap clientBootSrap() throws Exception {
    Bootstrap bootstrap = new Bootstrap();
    bootstrap.group(clientGroup())
    .channel(NioSocketChannel.class)
    .option(ChannelOption.TCP_NODELAY, true)
    .option(ChannelOption.SO_KEEPALIVE, true)
    .handler(clientInitializer);
    return bootstrap;
    }

@ComponentScan

  • 组件扫描。相当于 context:component-scan,如果扫描到有@Component、@Controller、@Service等这些注解的类,就把这些类注册为bean;

@ControllerAdvice

  • 该注解定义全局异常处理类,通常结合@ExceptionHandler使用;

@ExceptionHandler

  • 该注解声明异常处理方法,通常结合@ControllerAdvice使用;
  • handleException()就会处理所有Controller层抛出的Exception及其子类的异常;
@ControllerAdvice
public class GlobalExceptionHandler { @ExceptionHandler(Exception.class)
String handleException(){
return "Exception Deal!";
}
}

@ResponseBody

  • 表示该方法的返回结果直接写入HTTP response body中;
  • 一般在异步获取数据时使用;
  • 在使用@RequestMapping之后,返回值通常解析为跳转路径,加上@ResponseBody后返回结果不会被解析为跳转路径,而是直接写入HTTP Response Body中;

@Qualifier

  • 当有多个同一类型的Bean时,可以使用@Qualifier("name")来指定;
  • 与@Autowired配合使用;
@Autowired
@Qualifier(value = “demoInfoService”)
private DemoInfoService demoInfoService;

注入(@Autowired和@Resource)

  • @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上;
  • @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired
@Qualifier(value = “demoInfoService”)
private DemoInfoService demoInfoService;
  • @Resource 是JDK1.6支持的注解,默认按照名称进行装配,名称可以通过name属性进行指定;@Resource的装配顺序:

    • 1、如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常;
    • 2、如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常;
    • 3、如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
    • 4、如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;

SpringBoot 常用注解(持续更新)的更多相关文章

  1. 接近8000字的Spring/SpringBoot常用注解总结!安排!

    0.前言 大家好,我是 Guide 哥!这是我的 221 篇优质原创文章.如需转载,请在文首注明地址,蟹蟹! 本文已经收录进我的 75K Star 的 Java 开源项目 JavaGuide:http ...

  2. Spring/SpringBoot常用注解总结

    转自:[Guide哥] 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用法,掌握搞懂,使 ...

  3. 菜鸟的springboot常用注解总结

    菜鸟的springboot常用注解总结 0.前言 可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的场景.对于每一个注解我都说了具体用 ...

  4. SpringBoot 入门篇(二) SpringBoot常用注解以及自动配置

    一.SpringBoot常用注解二.SpringBoot自动配置机制SpringBoot版本:1.5.13.RELEASE 对应官方文档链接:https://docs.spring.io/spring ...

  5. SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解

    SpringBoot介绍 引言 为了使用ssm框架去开发,准备ssm框架的模板配置 为了Spring整合第三方框架,单独的去编写xml文件 导致ssm项目后期xml文件特别多,维护xml文件的成本也是 ...

  6. SpringBoot常用注解的介绍及使用 - 转载

    常用注解 @springBootApplication 系统启动类注解,此注解是个组合注解,包括了:@SpringBootConfiguration,@EnableAutoConfiguration, ...

  7. 结合参数接收响应转换原理讲解SpringBoot常用注解

    一.常用注解回顾 1.1 @RequestBody与@ResponseBody //注意并不要求@RequestBody与@ResponseBody成对使用. public @ResponseBody ...

  8. Hibernate4的注解 (持续更新范例中)

    作用:使得Hibernate程序的开发大大的简化.利用注解后,可不用定义持久化类对应的*.hbm.xml,而直接以注解方式写入持久化类的实现中. 注解配置持久化类常用注解. 注解 含义和作用 @Ent ...

  9. Spring、Springboot常用注解:@Qualifier(不定时更新)

    1.@Qualifier 出现场景: 老项目中有多个实现类实现同一个接口时,或者一个项目中有多个数据源时,spring容器不知道该注入哪个实现类或者使用哪个数据源,该注解就派上用场. 1)多实现类实现 ...

随机推荐

  1. adnanh webhook 框架使用

    adnanh webhook 支持以下功能: 接收请求 解析header 以及负载以及查询变量 规则检查 执行命令 简单测试 使用docker-compose docker-compose 文件 ve ...

  2. android 发送UDP广播,搜寻server建立socket链接

    应用场景:client(手机.pc)须要搜寻所在局域网内的server并获得server地址. 方法简单介绍:client发送UDP广播,服务收到广播后得到clientip地址,然后向client发送 ...

  3. 在Win7下新建库并修改图标

    win7中在库中添加桌面方法详解 1.在空白处,鼠标右键选择新建——库. 2.命名为桌面,然后选择桌面. 3.鼠标右键选择属性. 4.点击包括文件夹. 5.选择桌面,点击包括文件夹按钮. 6.点击确定 ...

  4. windows10密钥激活方法

    软件设计开发文档模板(国家标准)v1.1.rar 以上就是今天所分享Win10系统各个版本免费激活的windows密钥,希望win10专业版密钥可以帮助大家. 专业版:W269N-WFGWX-YVC9 ...

  5. 小米盒子root及sshdroid安装

    1.root 参考屌丝猫的教程 主要原理是通过运行自定义recovery实现root功能 2.安装sshdroid以及幸运破解器 3.使用幸运破解器吧sshdroid编程系统应用,从而实现自启动

  6. JMeter和JMeterPlugin的下载安装

    JMeter和JMeterPlugin的下载安装 Apache Jmeter是一个100%的纯Java桌面应用,主要是针对web的压力和性能测试,但后来扩展到其他测试领域.Jmeter可以用于测试FT ...

  7. Java Web Service 学习笔记

    一.服务端 1. 创建Java工程 2. 创建接口HostipalServiceInterface package ws_server; import javax.jws.WebMethod; imp ...

  8. Windows Server 2008 R2 3389端口更改

    Windows Server 2008 R2 3389端口更改 2016-04-28 23:08 4734人阅读 评论(0) 收藏 举报  分类: Windows(61)  版权声明:本文为博主原创文 ...

  9. bzoj1196 公路修建问题

    Description OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织 ...

  10. SpringMVC中session的使用

    SpringMVC中仍然可以使用传统方式使用session /** * 使用session - 传统方式 */ @RequestMapping("/hello13.action") ...