Spring Boot可以在7分钟内完成一个Web项目的搭建和运行,比Spring MVC效率高不少。本文针对两种不同的使用场景(Web与命令行程序),如何最快速的使用Spring Boot实现
Spring Boot入门系列
- Spring Boot七分钟快速实践
- Spring Boot & MyBatis
- Spring Boot & Redis
- Spring Boot & Swagger
- Spring Boot & 单元测试
- Spring Boot & Actuator
- Spring Boot Admin
Web后台
只需要3个文件就可以构建一个完整项目,而且启动也不需要依赖第三方组件,直接执行命令
mvn clean package && java -jar target\boot-web-2.1.2.RELEASE.jar
构建
- pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>boot-web</artifactId>
<name>boot-web</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
spring-boot-maven-plugin插件主要提供了3个方便功能
- 把依赖的jar包打包成一个jar文件,非常方便运行和发布
- 找到public static void main()方法所在的类,并标注为可运行类
- 解析jar包依赖关系,找到匹配当前Spring Boot的版本
- HelloController.java
@RestController
public class HelloController {
@GetMapping("/")
public String index() {
return "Hello World!";
}
}
- Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
运行
mvn clean package && java -jar target\boot-web-2.1.2.RELEASE.jar
命令行程序
利用SpringBoot使用jar包发布的特性,可以非常方便地实现后台命令行程序。
- pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.2.RELEASE</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>boot-cmd</artifactId>
<name>boot-cmd</name>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
运行
mvn clean package && java -jar target\boot-cmd-2.1.2.RELEASE.jar
优点
- 摆脱繁琐的配置文件
- 自动加载合适版本的jar包,摆脱jar包冲突
- 以Jar包的方式发布,直接运行,减少对容器的依赖
常见错误
- 命令行执行完后,进程没有退出。一般是使用了jar包
spring-boot-starter-web
,需要换成spring-boot-starter
参考
https://spring.io/guides/gs/spring-boot/
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/05/16 13:40