Spring Boot七分钟快速实践

/ Java / 没有评论 / 1783浏览

Spring Boot可以在7分钟内完成一个Web项目的搭建和运行,比Spring MVC效率高不少。本文针对两种不同的使用场景(Web与命令行程序),如何最快速的使用Spring Boot实现

Spring Boot入门系列

Web后台

只需要3个文件就可以构建一个完整项目,而且启动也不需要依赖第三方组件,直接执行命令

mvn clean package && java -jar target\boot-web-2.1.2.RELEASE.jar

构建

<?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的版本
@RestController
public class HelloController {
    @GetMapping("/")
    public String index() {
        return "Hello World!";
    }
}
@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包发布的特性,可以非常方便地实现后台命令行程序。

<?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>
@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

优点

常见错误

参考

https://spring.io/guides/gs/spring-boot/