什么是Spring Bootjava
Spring Boot是由Pivotal团队提供的基于Spring的全新框架,其设计目的是为了简化Spring应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而使开发者无需定义大量的XML配置。经过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者。web
Spring Boot并不重复造轮子,并且在原有Spring的框架基础上封装了一层,而且它集成了一些类库,用于简化开发。换句话说,Spring Boot就是一个大容器。spring
几张下面展现图产品了官网上提供的弹簧引导所集成的全部类库:apache
Spring Boot官方推荐使用Maven或Gradle来构建项目,本教程采用Maven。api
第一个Spring Boot项目
大多数教程都是以Hello World入门,本教程也不例外,接下来,咱们就来搭建一个最简单的Spring Boot项目。浏览器
首先建立一个Maven工程,请看下图:app
这里写图片描述框架
而后在pom.xml加入Spring Boot依赖:maven
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
建立一个Controller类HelloController:ide
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @SpringBootApplication public class HelloController { @RequestMapping("hello") String hello() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(HelloController.class, args); } }
运行主方法,Spring Boot默认会启动自带的Tomcat容器,启动成功后,浏览器访问:http:// localhost:8080 / hello,则会看到下图:
这里写图片描述
咱们能够注意到,没有写任何的配置文件,更没有显示的使用任何容器,它是如何启动程序的呢,具体原理我将在第3课中具体分析。
这里咱们能够初步分析出,Spring Boot提供了默认的配置,在启动类里加入@SpringBootApplication注解,则这个类就是整个应用程序的启动类。
属性和yaml
Spring Boot整个应用程序只有一个配置文件,那就是.properties或.yml文件。可是,在前面的示例代码中,咱们并无看到该配置文件,那是由于Spring Boot对每一个配置项都有默认值。固然,咱们也能够添加配置文件,用以覆盖其默认值,这里以.properties文件为例,首先在资源下新建一个名为application.properties(注意:文件名必须是应用)的文件,键入内容为:
server.port=8081 server.servlet.context-path=/api
而且启动main方法,这时程序请求地址则变成了:http:// localhost:8081 / api / hello。
Spring Boot支持属性和yaml两种格式的文件,文件名分别对应application.properties和application.yml,下面贴出yaml文件格式供你们参考:
server: port: 8080 servlet: context-path: /api
能够看出属性是以逗号隔开,而yaml则换行+ tab隔开,这里须要注意的是冒号后面必须空格,不然会报错.yaml文件格式更清晰,更易读,这里做者建议你们都采用yaml文件来配置。
本教程的全部配置均采用yaml文件。
打包,运行
Spring Boot打包分为war和jar两个格式,下面将分别演示如何构建这两种格式的启动包。
在pom.xml加入以下配置:
<packaging>war</packaging> <build> <finalName>index</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <configuration> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build>
这个时候运行mvn包就会生成war包,而后放到Tomcat当中就能启动,可是咱们单纯这样配置在Tomcat是不能成功运行的,会报错,须要经过编码指定Tomcat容器启动,修改HelloController类:
@RestController @SpringBootApplication public class HelloController extends SpringBootServletInitializer{ @RequestMapping("hello") String hello() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(HelloController.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } }
这时再打包放到Tomcat,启动就不会报错了。
接下来咱们继续看若是达成jar包,在pom.xml加入以下配置:
<packaging>jar</packaging> <build> <finalName>api</finalName> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork> <mainClass>com.lynn.yiyi.Application</mainClass> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>2.5</version> <configuration> <encoding>UTF-8</encoding> <useDefaultDelimiters>true</useDefaultDelimiters> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.18.1</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
而后经过mvn package打包,最后经过java命令启动:
java -jar api.jar
这样,最简单的Spring Boot就完成了,可是对于一个大型项目,这是远远不够的,Spring Boot的详细操做能够参照官网。
下面展现一个最基础的企业级Spring Boot项目的结构:
其中,Application.java是程序的启动类,Startup.java是程序启动完成前执行的类,WebConfig.java是配置类,全部bean注入,配置,拦截器注入等都放在这个类里面。
以上实例只是最简单的Spring Boot项目入门实例,后面会深刻研究Spring Boot。