Gradle(五) Gradle创建SpringBoot项目

Spring Boot让我们的Spring应用变的更轻量化。

简介

在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!

Spring Boot的主要优点:

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求

概述

本文详细记录了Spring Boot环境搭建的过程,包含生成基本的项目结构,生成war包发布到外部的tomcat,编写一个测试的控制器。

构建项目

使用Spring Initializr新建一个项目

Type: 选择 Gradle Project

注意:这里Packaging选war包,这个选项对自动生成的代码有影响。


这里就算不勾选Web ,由于之前选了打war包,也会生成web项目。



Gradle推荐使用默认配置,会自动下载,但是下载很慢。
推荐选择 Use local gradle distribution ,指定本地的gradle路径
推荐选择 Use auto-import ,自动导包。

构建完成

浏览build.gradle文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
buildscript {
ext {
springBootVersion = '2.0.4.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'war'

group = 'com.ray'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
mavenCentral()
}

configurations {
providedRuntime
}

dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
testCompile('org.springframework.boot:spring-boot-starter-test')
}

我们前面Packaging勾选war 产生的效果就是

  1. 新增了 apply plugin: 'war' ,war插件
  2. providedRuntime('org.springframework.boot:spring-boot-starter-tomcat') 表示代码在运行时需要的依赖, providedRuntime 指依赖的Jar包不会被加到War包里面。

工程目录配置

工程目录中,基本配置其实都自动生成好了,自动生成的文件目录如下

ServletInitializer

Packaging勾选war 还有一个效果就是会生成一个ServletInitializer。因为项目要部署到tomcat,启动类必须继承自SpringBootServletInitializer,主要起到web.xml的作用。

@SpringBootApplication

@SpringBootApplication等价于@Configuration、@EnableAutoConfiguration、@ComponentScan,查看SpringBootApplication注解可以发现@ComponentScan并没有添加任何的参数,它会自动扫描工程里所有的@Component、 @Service、 @Repository、 @Controller并把它们注册为Spring Beans。

运行项目


ok

-------------- 本文结束  感谢您的阅读 --------------