Spring Boot常用注解介绍及学习笔记

目录

SpringBoot的介绍

SpringBoot的特点

SpringBoot与Spring的关系

简要介绍Spring

关系

Maven

SpringBoot相关依赖及注解

Lombok

@Data

@Getter/@Setter

@ToString

@Value

Lombok的相关依赖代码|文件名:pom.xml

SpringBoot

SpringBoot的项目和开发Web的相关依赖代码|文件名:pom.xml

@SpringBootApplication

@RestController与@GetMapping

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan

@ConfigurationProperties

@Value

@Component

@Autowired

@Configuration

@Bean

@ImportResource

@PropertySource


SpringBoot的介绍

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

--引自百度百科

Spring Boot 是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,初衷是简化使用Spring开发应用程序的过程,避免烦琐的配置工作,开发人员使用Spring Boot可以只专注于实现应用程序的功能和业务逻辑。


SpringBoot的特点

1.约定优于配置
Spring Boot使用“约定优于配置”的理念,针对企业级应用程序的开发,提供了很多
已经集成好的方案,“开箱即用”的原则使得开发人员能做到零配置或极简配置。
2.创建独立运行的Spring应用程序
使用 Spring Boot 可以创建独立运行的Spring 应用程序,并且基于Spring 应用程序Maven或Gradle插件,可以创建可执行的JAR包和WAR包,使用java-jar 命令或者在项目的主程序中执行main方法可以运行Spring Boot应用程序。

3.内嵌Servlet容器
Spring Boot 可以选择内嵌Tomcat 或Jctty等Servlct容器,无须以WAR包形式部署应用
4.提供starter简化Maven配置
Spring Boot 提供了一系列自动配置的starter项目对象模型(Project Object Model,POM)
以简化Maven配置,高度封装,实现开箱即用。
5.自动配置 Spring
Spring Boot 可以尽可能地根据在类路径中的JAR包,为JAR包里的类自动配置Spring中的Bean,极大地简化项目的配置。而对于少部分没有提供支持的开发场景,Spring Boot可以自定义自动配置功能。
6.准生产的应用监控
Spring Boot 提供了一个准生产环境下的监控和管理功能模块,可以使用HTTP、SSH、
Telnet 等协议来进行操作,对运行的项目进行管理、跟踪和监控。
7.无代码生成和XML配置
Spring Boot 不是借助代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x
提供的新特性,Spring Boot不需要任何XML配置即可实现Spring的所有配置。


SpringBoot与Spring的关系

简要介绍Spring

Spring 是于2003年兴起的一个开源的轻量级的Java开发框架,由罗德·约翰逊(Rod Johnson)开发。它是为了降低企业应用程序开发的复杂度而创建的,主要优势之一就是其分层架构,分层架构允许使用者选择使用某个组件,同时为Java EE应用程序开发提供集成的框架。

关系

Spring Boot 是Spring的扩展和自动化配置,它省去了在Spring中需要进行的XML文件配置过程,使得开发过程变得更快、更高效、更自动化。


Maven

Apache Maven(以下简称Maven)是一个软件项目管理工具,它基于POM的理念,
通过一段核心描述信息来管理项目的构建过程、报告和文档信息。
//其中Maven的下载及配置环境变量的过程就不在文章中讲述

需要注意的是Maven的中心仓库在国外,如需下载相关依赖会出现下载缓慢的情况,则可在Maven的安装目录下的settings.xml文件添加阿里云的镜像仓库

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

SpringBoot相关依赖及注解

Lombok

Lombok额外提供了一些注解,可以简化部分Java代码

@Data

自动生成getter/setter、toString、equals、hashCode方法,以及不带参数
的构造方法

@Getter/@Setter

自动生成get/set方法

@ToString

自动生成toString方法

@Value

用于注解final类

Lombok的相关依赖代码|文件名:pom.xml

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
</dependency>

SpringBoot

SpringBoot的项目和开发Web的相关依赖代码|文件名:pom.xml

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.2.5.RELEASE</version>
</parent>
<dependencies>
   <dependency>
       <groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter- 
       web</artifactId>
   </dependency>
</dependencies>

@SpringBootApplication

@SpringBootApplication 注解是Spring Boot 的核心注解,用于表明当前类是Spring Boot项目的主程序启动类,能够扫描 Spring组件并自动配置Spring Boot。

@RestController与@GetMapping

以下代码用到了两个注解,其中,@RestController注解是一个组合注解,等同于 Spring H@Controller+@ResponseBody 注解,主要作用是将当前类作为控制层的组件添加到Spring容器中,同时该类的方法返回 JSON字符串;@GetMapping 注解等同于@RequestMapping(RequestMethod.GET)注解,主要作用是设置身法的访向路径并限定其访问方式为GET,此方法的请求处理路径为“/hello”

package com.example.bk;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class bk {
    @GetMapping("/hello")
    public String hello(){
        return "Hello! SpringBoot!";
    }
}

运行后输入"localhost:8080/hello"即可访问相关页面

@SpringBootConfiguration

该注解表示该类为SpringBoot配置类,并可以被组件扫描器扫描

@EnableAutoConfiguration

该注解表示开启SpringBoot 的自动配置功能,从而减轻开发者搭建环境和配置的负担,它是Spring Boot最重要的注解之一,也是实现自动化配置的注解,具有非入侵性。

@ComponentScan

该注解是一个组件包扫描器,用于将指定包中的注解类自动装配到Spring的容器Bean 中。@ComponentScan注解具体扫描的包的根路径由Spring Boot应用程序的主程序启动类所在包的位置决定,在扫描过程中由@AutoConfigurationPackage 注解进行解析,从而得到Spring Boot应用程序的主程序启动类所有包的具体位置。

@ConfigurationProperties

该注解一般将配置文件与一个类绑定,将配置文件中的变量值注入该类的成员变量中,可以进行属性值的批量注入

@Value

该注解一般将配置文件中的变量值注人当前类的成员变量中

@Component

该注解表示这个实体是SpringBoot的组件

@Autowired

该注解表示对该实体自动注入属性值

@Configuration

在Spring Boot中,通常使用@Configuration注解定义一个配置类。Spring Boot会自动扫描和识别配置类,从而替换传统Spring 中的XML配置文件。@Configuration注解一般作用在类和接口上。

其实@Configuration 注解的底层就是@Component 注解,但@Configuration 注解侧重配置,@Component 注解侧重组件,不管侧重点是什么,两者本身都是一个IoC谷器管理的Bean对象。

@Bean

当定义一个配置类后,一般需要在类的方法上使用@Bean注解进行组件配置,方法的返回对象注入 Spring 容器中(类似于XML配置文件中的<bcan>标签配置),表示当前方法的返回值是一个Bean。Bean的组件名称默认使用方法名,也可以使用@Bean 注解的name或value属性自定义组件的名称。

@ImportResource

Spring Boot 默认不使用XML配置文件,其中没有Spring的XML配置文件,自己编写的XML 配置文件也不能自动识别。若在项目中想加载XML配置文件,则可以使用@ImportResource注解,一般将这个注解放在主入口函数的类上即可

@PropertySource

在实际应用中,不会将所有的配置都写在默认配置文件里,用户可以定自己的配置文件。若想引用自定义配置文件,可以使用@PropertySource注解指定自定义配置文件的位置和名称,@PropertySource 注解默认不支持读取YAML 配置文件。可以使用注解@Value和@ConfigurationProperties注解获取配置文件中的配置值,并将其注入类的属性中。


作为一名初学者,本文章旨在介绍一些SpringBoot的常用注解及作为学习笔记使用,因为篇幅原因,本次仅介绍部分注解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值