文档章节

Spring Boot Hello Word

王福林
 王福林
发布于 2017/08/29 09:02
字数 1494
阅读 45
收藏 0

开发工具及环境

  • JDK 1.7+ 
    • Spring Boot 要求 JDK 不低于1.6,推荐使用1.8
  • 编译工具 Gradle 
    • 安装可以参考我之前写的博客(Gradle环境搭建),或其他很多教程都可以找到
  • 开发工具建议使用IDEA或者 STS(Spring Tool Suite) 
    • 因为集成度比较高,不需要再单独下载插件,如果使用 Eclipse 或 MyEclipse 需要单独下载 Gradle 和 Spring 插件,并且没有科学上网很容易失败,在这里我们使用 IDEA 作为开发工具

Spring Boot 是什么

  • Spring Boot 是 Spring 社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数 Spring Boot 项目只需要很少的配置文件。

Spring Boot 特性

  • 创建独立的 Spring 项目
  • 内置 Tomcat 和 Jetty 容器
  • 提供一个 starter POMs 来简化 Maven 配置
  • 提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等
  • 完全没有代码生成和 xml 配置文件

Spring Boot 应用快速搭建官方文档

1. 创建一个 Gradle 项目,填入所需要的信息

2. 创建相应的目录

  • 因为 spring Boot 使用 Gradle 编译,所以有固定的文件结构

  • 目录结构

─src
     build.gradle
    ├─main
    │  ├─java
    │  │      SpringController.java
    │  │
    │  └─resources
    └─test
        ├─java
        └─resources
  •  

项目文件结构

3. 创建一个 Controller 类(在 main 文件夹下)

  • SpringController.java
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

//表明这是一个 Controller
@Controller

//RestController是一种Rest风格的Controller,可以直接返回对象而不返回视图,返回的对象可以使JSON,XML等
//@RestController

//使用自动配置,主动添加并解析bean,配置文件等信息
@EnableAutoConfiguration

public class SpringController {

    //设置访问的url
    @RequestMapping("/")
    //表示返回JSON格式的结果,如果前面使用的是@RestController可以不用写
    @ResponseBody
    String home() {
        return "Hello World!";//返回结果为字符串
    }

    public static void main(String[] args) throws Exception {
        //通过SpringApplication的run()方法启动应用,无需额外的配置其他的文件
        SpringApplication.run(SpringController.class, args);
    }
}
  •  

4. 修改 build.gradle 文件

  • build.gradle
  • 默认生成的 Gradle 文件并不能满足编译 Spring Boot 应用,需要手动修改
buildscript {
    repositories {
        mavenCentral()//依赖Maven仓库
    }
    dependencies {
        //使用1.4.2.RELEASE版本的Spring框架
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

//生成的jar包包名和版本
jar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

//设置jdk的版本
sourceCompatibility = 1.8
targetCompatibility = 1.8

//添加编译时的依赖
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}
  •  

5. 编译项目

  • 在命令行进入到该项目根目录下,输入 gradle build 进行编译
  • 编译的过程中会下载很多的jar包,如果没有科学上网可能会很慢

  • 编译成功后输出build successful

D:\WorkSpace\IntelliJIDEA\springboot>gradle build
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead.
:compileJava                                                                                                               
:processResources UP-TO-DATE
:classes
:findMainClass
:jar
:bootRepackage                                                                                                        
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 5.807 secs
  •  
  • 也可以在左侧的 gradle 中点击刷新按钮,效果是一样的 
    编译项目

6. 启动项目

  • 在命令行中输入 gradle bootrun 进行启动项目
  • 也可以使用左侧的 gradle 中 Task 下的 application 中的 bootRun 按钮启动(参照上图)
  • 默认的会启动 tomcat,使用8080端口,如果端口被占用会报错

  • 启动成功后会输出以下内容

D:\WorkSpace\IntelliJIDEA\springboot>gradle bootrun
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead.
:compileJava UP-TO-DATE                                                                                                                                            
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:bootRun                                                     

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.2.RELEASE)

2016-11-30 22:14:47.878  INFO 9120 --- [           main] SpringController                         : Starting SpringController on H with PID 9120 (D:\WorkSpace\Intel
liJIDEA\springboot\build\classes\main started by 50185 in D:\WorkSpace\IntelliJIDEA\springboot)
2016-11-30 22:14:47.880  INFO 9120 --- [           main] SpringController                         : No active profile set, falling back to default profiles: default

2016-11-30 22:14:47.911  INFO 9120 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationC
onfigEmbeddedWebApplicationContext@57c758ac: startup date [Wed Nov 30 22:14:47 CST 2016]; root of context hierarchy
2016-11-30 22:14:49.330  INFO 9120 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2016-11-30 22:14:49.343  INFO 9120 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2016-11-30 22:14:49.344  INFO 9120 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6
2016-11-30 22:14:49.457  INFO 9120 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2016-11-30 22:14:49.458  INFO 9120 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1550 ms
2016-11-30 22:14:49.642  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2016-11-30 22:14:49.647  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2016-11-30 22:14:49.648  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2016-11-30 22:14:49.648  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2016-11-30 22:14:49.648  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2016-11-30 22:14:49.941  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.
embedded.AnnotationConfigEmbeddedWebApplicationContext@57c758ac: startup date [Wed Nov 30 22:14:47 CST 2016]; root of context hierarchy
2016-11-30 22:14:50.022  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto java.lang.String SpringController.home()
2016-11-30 22:14:50.026  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.Respons
eEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletReque
st)
2016-11-30 22:14:50.026  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springf
ramework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http
.HttpServletResponse)
2016-11-30 22:14:50.050  INFO 9120 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.sp
ringframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-11-30 22:14:50.050  INFO 9120 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springfram
ework.web.servlet.resource.ResourceHttpRequestHandler]
2016-11-30 22:14:50.088  INFO 9120 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class or
g.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-11-30 22:14:50.209  INFO 9120 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-11-30 22:14:50.263  INFO 9120 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2016-11-30 22:14:50.267  INFO 9120 --- [           main] SpringController                         : Started SpringController in 2.734 seconds (JVM running for 3.049
)
2016-11-30 22:14:57.820  INFO 9120 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2016-11-30 22:14:57.820  INFO 9120 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2016-11-30 22:14:57.836  INFO 9120 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed i
n 16 ms
> Building 80% > :bootRun
  •  

7. 通过浏览器访问该项目

  • 该项目因为配置的路径为根路径,所以直接访问localhost:8080即可
  • 如果想停止运行该项目可以在命令行中按Ctrl+C,输入Y即可停止 
    访问项目
  • 至此,一个最简单的 Spring Boot 项目创建完成,想要学习更多的知识可以访问官方的文档
  • 如果遇到 IDEA 中的 Controller 提示没有引入包无法进行代码提示可以点击 Gradle 的刷新按钮,等待编译完成就可以进行后续操作了

本文转载自:http://blog.csdn.net/u013360850/article/details/53415005

上一篇: Kafka常用命令
下一篇: Feign 简介
王福林
粉丝 10
博文 94
码字总数 37444
作品 0
徐汇
程序员
私信 提问
SpringBoot整合Dubbo案例

使用框架: jdk 1.8 springboot-2.1.3 dubbo-2.6 spring-data-jpa-2.1.5 一、开发dubbo服务接口: 按照Dubbo官方开发建议,创建一个接口项目,该项目只定义接口和model类; 1、创建springboo...

ggod
06/09
233
0
SpringCloud学习系列之五-----配置中心(Config)和消息总线(Bus)完美使用版

前言 在上篇中介绍了SpringCloud Config的使用,本篇则介绍基于SpringCloud(基于SpringBoot2.x,.SpringCloud Finchley版)中的分布式配置中心(SpringCloud Config)的配置刷新和消息总线(Rabb...

虚无境
06/02
147
0
年轻人的第一个 Spring Boot 应用,太爽了!

Spring Boot 大家都知道是啥吧? 还有不知道的来看这篇扫下盲:告诉你,Spring Boot 真是个牛逼货!。 顺便再往下看,栈长给你带来年轻人的第一个 Spring Boot 应用,撸码史无前例的轻松,那...

Java技术栈
06/24
104
0
spring security的简单例子

1 pom.的主要文件 我引入的thymeleaf-extras-springsecurity5,springboot2.1.6 2 controller@Controllerpublic class KungfuController { private final String PREFIX = "pages/"; @Reque......

南桥北木
07/15
36
0
【Spring Boot 系列 入门程序】

入门程序步骤,创建一个Maven项目。继承Spring Boot官方提供的父工程。再引入一个Web的应用启动器。 1、选择一个合适的IDEA工具 创建一个Maven工程,并添加如下配置 2、创建主程序类 3、运行...

HansonReal
2018/07/18
18
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部