目录
SpringBoot的项目和开发Web的相关依赖代码|文件名:pom.xml
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的常用注解及作为学习笔记使用,因为篇幅原因,本次仅介绍部分注解。