在搭建传统的SpringMVC项目或其他Spring项目的的时候,我们通常都需要写一堆与Spring整合的xml配置文件,过程繁琐复杂不说,而且容易出错。为了简化开发,Spring Boot应运而生。 Spring Boot可以创建独立运行的基于Spring的应用,并且大多数时候只需编写少量的配置。能独立运行的原因是Spring Boot项目本身嵌入了Tomcat等其他web容器插件,详细介绍看官网http://projects.spring.io/spring-boot/。
创建一个Spring Boot 项目 1、pom.xml配置 (1)基本配置 这里使用Maven构建工程,根据官网的推荐,项目可继承于spring-boot-starter-parent
来管理工程。
1 2 3 4 5 6 7 8 9 10 11 <parent > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-parent</artifactId > <version > 1.5.2.RELEASE</version > </parent > <dependencies > <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-web</artifactId > </dependency > </dependencies >
(2)如果不使用官方依赖 实际开发中我们可能想自己创建父工程来管理依赖,例如我们创建聚合工程时有自己的parent工程,那么我们在自己的父工程定义版本号,根据需要引入对应的包。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <properties > <project.build.sourceEncoding > UTF-8</project.build.sourceEncoding > <spring.version > 1.5.2.RELEASE</spring.version > </properties > <dependencyManagement > <dependencies > <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-web</artifactId > <version > ${spring.version}</version > </dependency > </dependencies > <dependencyManagement >
2、编写应用入口类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 package com.fyft.test;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication public class TestApplication { public static void main (String[] args) { SpringApplication.run(TestApplication.class, args); } }
直接执行此主函数项目就启动了,默认的端口是8080,如果需要改变端口可以在此类实现EmbeddedServletContainerCustomizer
接口,这个接口包含内置Servlet容器的一些配置,例如设置访问端口为8003
1 2 3 4 5 6 7 8 9 10 11 12 13 @SpringBootApplication public class TestApplication implements EmbeddedServletContainerCustomizer { public static void main (String[] args) { SpringApplication.run(TestApplication.class, args); } @Override public void customize (ConfigurableEmbeddedServletContainer config) { config.setPort(8003 ); } }
创建Controller类 要让Controller被扫描到,必须放在主入口类 TestApplication
的同级目录或下级目录,这样才能被扫描到,注解才会生效。 其他的带注解类都是一样的逻辑, Spring Boot 默认扫描入口启动类所在包之下的目录。
打包部署启动 Spring Boot工程直接打成jar包就行了,如果工程是要跑在外部web容器的,也可以打成war包发布,这需要修改一些配置,这里先不做介绍。 在eclipse上直接用maven打包就行,输入 clean package
命令,勾上Skip Tests
忽略测试就行。
在dos下cd到jar包目录下执行 java -jar xx.jar
启动工程,出现一个错误
原因是 maven 自身打包生成的目录结构和文件和 Spring Boot 需要的有所不同,需要在pom.xml加上一段配置,使用 spring-boot-maven-plugin
来打包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <build > <plugins > <plugin > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-maven-plugin</artifactId > <executions > <execution > <goals > <goal > repackage</goal > </goals > </execution > </executions > </plugin > </plugins > </build >
若上面的dos正cd到target目录下,须退出此目录,在打包编译时会删除一次target目录,若不退出将会包无法删除此目录,因为你正打开它。 再次执行java -jar
命令启动成功