假设你受命用Spring开发一个简单的Hello World Web应用程序。你该做什么?我能想到一些 基本的需要。 1. 一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和Servlet API这些依赖。 2. 一个web.xml文件(或者一个 WebApplicationInitializer 实现),其中声明了Spring 的 DispatcherServlet 。 3. 一个启用了Spring MVC的Spring配置。 4. 一个控制器类,以“Hello World”响应HTTP请求。 5. 一个用于部署应用程序的Web应用服务器,比如Tomcat。 最让人难以接受的是,这份清单里只有一个东西是和Hello World功能相关的,即控制器,剩 下的都是Spring开发的Web应用程序必需的通用样板
其实我们需要的也只是一个相关的控制器类,其他的配置不是我们业务时所关注的,而且很多都是通用的,并且在我们使用
Maven或者是gradle的时候添加依赖,决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突。
幸运的Spring boot帮助我们解决了这些问题,让我们可以更加关注我们所需要关注的。
- 项目生成
点击Generate Project即可生成
- 生成的项目包括
- build.gradle:Gradle构建说明文件。如果选择Maven项目,这就会换成pom.xml。 Application.java :一个带有 main() 方法的类,用于引导启动应用程序。 ApplicationTests.java :一个空的JUnit测试类,它加载了一个使用Spring Boot自动 配置功能的Spring应用程序上下文。 application.properties:一个空的properties文件,你可以根据需要添加配置属性。
- 直接在DemoApplication中 Run() 运行即可,默认8080端口,如果想修改端口,可以在application.properties文件中配置 server.port=8000 ,端口就会改变成8000
- build.gradle :主要包含相关依赖以及plugin,如下图
- 生成的项目会为我们自动依赖好web、JPA等,不用我们再次修改,唯一要做的可能就是依赖库的管理,默认是Spring的官方库,速度有点慢
- 当然由于Spring boot把我们的依赖jar包全部放在起步依赖中,即spring-boot-starter-xxx中,我们并不知道使用的jar具体是什么版本,可以使用gradle dependencies来查看
- 另外如果我们不想使用某一个jar的话,比如不想使用Jackson,Jackson默认包含在web中,可以 compile('org.springframework.boot:spring-boot-starter-web'){exclude group: 'com.fasterxml.jackson.core'}排除依赖,让项目瘦身。
- 当然如果我们想用最新的Jackson的最新版本,web起步依赖的不是最新的,我们可以选择覆盖,直接制定compile("com.fasterxml.jackson.core:jackson-databind:2.4.3")