JavaEE之Spring Boot的使用

八、Spring Boot

Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级 Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的。

Spring Boot 简化了基于 Spring 的应用开发,只需要 “run” 就能创建一个独立的、生产级别的 Spring应用。Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以使用 Spring Boot 快速启动一个项目。多数 Spring Boot 应用只需要很少的 Spring 配置。

  • Spring Boot 出现的原因

    随着 Ruby、 Scala 、NodeJs 等动态语言的流行,Java 开发显得相对笨重,配置繁琐、开发效率低下、部署流程复杂,而且集成第三方技术的难度也相对较大。

    针对该环境,Spring Boot 被开发出来。Spring Boot 是一个在 Spring 的基础上搭建的全新的框架,它的设计目的是用来简化 Spring 应用的初始搭建以及开发过程。

    Spring Boot 使用"约定大于配置"(项目中内置默认的配置,让你无须手动进行配置)的理念,减少了大量的配置文件的使用,可以让你的项目快速运行起来。借助 Spring Boot 在开发应用时,可以不用或很少去进行相关 XML 环境配置,简化了开发,大大提高项目开发效率。

  • Spring Boot 特点

    1. 可以使用 SpringBoot 创建独立 Spring 应用程序

      Spring Boot 可以以 jar 包的形式独立运行,运行 Spring Boot 项目只需通过 java –jarxx.jar 来运行。

    2. 嵌入式 Tomcat、Jetty 容器、无需部署 WAR 包

      Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,不需要依赖外部容器,这样我们无须以 war 包形式部署项目。

    3. 提供 starter 简化Maven

      Spring Boot 中提供了一系列的 starter pom 来简化 Maven 的依赖加载。例如,当你使用了spring-boot-starter-web 时,会自动加入 web 环境所需的依赖包。

    4. 自动配置 Spring 和第三方库

      Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。

    5. 提供生产就绪特征

      Spring Boot 提供基于 http、ssh、telnet 对运行时的项目进行监控。如度量指标、健康检查及扩展配置等。

    6. 无代码生成和 XML 配置

      Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何XML 配置即可实现 Spring 的所有配置。

8.1 Spring Boot 的创建

8.1.1 创建项目

通过 Maven 创建一个普通的 java 项目

8.1.2 添加依赖坐标
<!-- SpringBoot的父级依赖。只有设置了parent标签,项目才是SpringBoot项目 --> 
    <parent> 
    	<groupId>org.springframework.boot</groupId> 
    	<artifactId>spring-boot-starter-parent</artifactId> 
    	<version>2.2.2.RELEASE</version> 
    </parent> 
    
<dependencies>
<!-- web启动器,加载web环境所需要的依赖 --> 
    <dependency> 
    	<groupId>org.springframework.boot</groupId> 
    	<artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
</dependencies>

Spring Boot 的项目必须要设置 parent 标签,该 parent 包含了大量默认的配置,简化程序的开发。

spring-boot-starter-parent 是一个特殊的 starter,它用来提供相关的 Maven 默认依赖。使用它之后,可以省去常用包依赖的 version 标签。

8.1.3 设置相关插件
<!-- SpringBoot项目的打包插件 --> 
<build> 
    <plugins> 
    	<plugin> 
    		<groupId>org.springframework.boot</groupId> 
   			 <artifactId>spring-boot-maven-plugin</artifactId> 
    	</plugin> 
    </plugins> 
</build>

spring-boot-maven-plugin 插件是将 SpringBoot 应用程序打包成 Jar 包的插件。它可以将应用启动运行所需要的 Jar 包 都加载进来。当运行 “mvn package” 进行项目打包后,使用 “java -jar xxx.jar” 命令可以直接运行项目。

8.1.4 添加源代码
@Controller 
public class HelloController { 
    @RequestMapping("hello") 
    @ResponseBody 
    public String hello(){ 
        return "Hello SpringBoot"; 
    } 
}
8.1.5 创建启动类

创建 StarterApplication.java 启动类

/**
* SpringBoot 启动类 
*/ 
@SpringBootApplication 
public class Starter{ 
    public static void main(String[] args) { 
        SpringApplication.run(Starter.class, args); 
    }
}

SpringBoot 的启动类的作用是启动 SpringBoot 项目,是基于 Main 方法运行的。

注:启动类在启动时会扫描注解(@Controller、@Service、@Repository、@Component),扫描位置为同包及其子包下的注解,所以启动类的位置应放置于根包目录下。

  • @SpringBootApplication 组合注解

    @SpringBootConfiguration: 包含@Configuration,用于定义一个配置类。

    @EnableAutoConfiguration: SpringBoot会自动根据jar包的依赖来自动配置项目。

    @ComponentScan: 告诉Spring哪个packages的注解标识的类会被Spring自动扫描并且装入bean容器。

8.2 Spring Boot的核心配置

8.2.1 设置 Banner 图标

Spring Boot 项目启动时默认加载 src/main/resources 目录下的 banner.txt 图标文件,如果该目录文件未提供,则使用 Spring Boot 默认。在 main 目录下新建 resources 资源目录,并在该目录下新建banner.txt 文本文件,可以设置自定义图标。

打开网址: http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something

在线生成图标对应文本并将文本内容copy 到 banner.txt 中

8.2.2 Spring Boot 配置文件

Spring Boot 默认会读取全局配置文件,配置文件名固定为:application.properties 或application.yml,放置在 src/main/resources 资源目录下,使用配置文件来修改 SpringBoot 自动配置的默认值。

在 resources 资源目录下添加 application.properties 文件,配置信息如下:

## 项目启动端口号配置 
server.port=8989 
## 项目访问上下文路径 
server.servlet.context-path=/mvc 
## 数据源配置 
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/hr? useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=root

或者 application.yml 文件

## 端口号 上下文路径 
server: 
	port: 8989 
    servlet: 
		context-path: /mvc 
## 数据源配置 
spring: 
	datasource: 
	type: com.mchange.v2.c3p0.ComboPooledDataSource 
	driver-class-name: com.mysql.cj.jdbc.Driver 
	url: jdbc:mysql://127.0.0.1:3306/hr 
	username: root 
	password: root
8.2.3 Starter 坐标 & 自动化配置
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值