Spring框架是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现,一般被直接称为 Spring。该框架的一些核心功能理论上可用于任何 Java 应用,但 Spring 还为基于Java企业版平台构建的 Web 应用提供了大量的拓展支持。Spring 没有直接实现任何的编程模型,但它已经在 Java 社区中广为流行,基本上完全代替了企业级JavaBeans(EJB)模型。
Spring框架以 Apache License 2.0 开源许可协议的形式发布,该框架最初由 Rod Johnson 以及 Juergen Hoeller 等人开发。
本章将向您介绍Spring Boot,并使您熟悉其基本概念。
Spring Boot使用 @EnableAutoConfiguration 批注,根据您添加到项目中的依赖项自动配置应用程序。例如,如果MySQL数据库位于类路径上,但尚未配置任何数据库连接,则Spring Boot会自动配置内存数据库。
Spring Boot应用程序的入口点是包含 @SpringBootApplication 的main方法的类。
Spring Boot使用 @ComponentScan 批注自动扫描项目中包含的所有组件。
对于大型项目,处理依赖关系管理是一项艰巨的任务, Spring Boot通过提供一组依赖关系来解决此问题,以方便开发人员。
例如,如果要使用Spring和JPA进行数据库访问,则在项目中包含 spring-boot-starter-data-jpa 依赖项就足够了。
请注意,所有Spring Boot启动器都遵循相同的命名方式 spring-boot-starter- *,其中*表示这是应用程序的一种。
查看下面解释的以下Spring Boot启动器,以更好地理解-
Spring Boot Starter Actuator依赖项用于监视和管理您的应用程序。其代码如下所示-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
Spring Boot Starter Security依赖项用于Spring Security。其代码如下所示-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
Spring Boot Starter Web依赖项用于编写Rest Endpoints。其代码如下所示-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Spring Boot Starter thymeleaf依赖项用于创建Web应用程序。其代码如下所示-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
Spring Boot Starter Test依赖项用于编写测试用例。其代码如下所示-
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency>
Spring Boot Auto Configuration根据您在项目中添加的JAR依赖关系自动配置Spring应用程序。例如,如果MySQL数据库位于类路径上,但尚未配置任何数据库连接,则Spring Boot会自动配置内存数据库。
为此,您需要在主类文件中添加 @EnableAutoConfiguration 批注或 @SpringBootApplication 批注。然后,您的Spring Boot应用程序将被自动配置。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @EnableAutoConfiguration public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
Spring Boot Application的入口点是包含@SpringBootApplication批注的类,此类应具有运行Spring Boot应用程序的main方法。@SpringBootApplication批注包括自动配置,组件扫描和Spring Boot配置。
如果在类中添加了 @SpringBootApplication 批注,则无需添加 @EnableAutoConfiguration,@ComponentScan 和 @SpringBootConfiguration 批注。 @SpringBootApplication 注释包括所有其他注释。
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); } }
初始化时,Spring Boot应用程序会扫描所有Bean和包声明。您需要为类文件添加 @ComponentScan 批注,以扫描添加到项目中的组件。
import org.springframework.boot.SpringApplication; import org.springframework.context.annotation.ComponentScan; @ComponentScan public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)