理解独立的SpringBoot应用

SpringBoot特性

  1. 创建独立的Spring应用。
  2. 直接嵌入Tomcat、Jetty、Undertow等Web容器。
  3. 提供starter依赖,简化构建配置。
  4. 条件满足时,自动装配Spring或第三方类库。
  5. 提供运维特性,如指标、健康检查、外部化配置。
  6. 无代码生成,不需要XML配置。

命令行方式创建SpringBoot

1.使用Maven Archetype插件

mvn archetype:generate -DgroupId=thinking.in.spring.boot -DartifactId=first-spring-boot-application -Dversion=1.0.0-SNAPSHOT -DinteractiveMode=false

2.增加SpringBoot依赖


  4.0.0
  thinking.in.spring.boot
  first-spring-boot-application
  jar
  1.0.0-SNAPSHOT
  《SpringBoot编程思想》第一个SpringBoot项目
  http://maven.apache.org
  
    
    
      org.springframework.boot
      spring-boot-starter-web
      2.0.2.RELEASE
    
    
      junit
      junit
      3.8.1
      test
    
  

3.调整引导类

@RestController
@SpringBootApplication
public class App 
{
    @RequestMapping("/")
    public String index() {
        return "welcome, My Buddy!"
    }
    
    public static void main( String[] args )
    {
        SpringApplication.run(App.class, args);
    }
}

4.使用Spring Boot Maven插件引导Spring Boot应用,需要在pom.xml中添加如下代码:


  
    org.springframework.boot
    spring-boot-starter-parent
    2.0.2.RELEASE
  

5.在项目根目录执行如下指令
mvn spring-boot:run

6.检验HTTP服务
浏览器地址栏输入http://127.0.0.1:8080/

构建可执行JAR

1.需要在pom文件中添加如下插件:


    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  

按ctrl+C键停止项目后,执行mvn package,将会在项目target目录下生成first-spring-boot-application-1.0.0-SNAPSHOT.jar。
2.执行Spring Boot应用可执行JAR
java -jar target/first-spring-boot-application-1.0.0-SNAPSHOT.jar
3.jar包结构说明
BOOT-INF/classes:存放应用编译后的class文件;
BOOT-INF/lib:存放应用依赖的jar包;
META-INF/:存放应用相关元信息,如MANIFEST.MF文件;
org/:存放Spring Boot相关的class文件。
4.jar命令运行成功的原因

Manifest-Version: 1.0
Implementation-Title: 《SpringBoot编程思想》第一个SpringBoot项目
Implementation-Version: 1.0.0-SNAPSHOT
Built-By: djn
Implementation-Vendor-Id: thinking.in.spring.boot
Spring-Boot-Version: 2.0.2.RELEASE
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: thinking.in.spring.boot.App
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.6.0
Build-Jdk: 1.8.0_181
Implementation-URL: http://maven.apache.org

java -jar命令引导的启动类必须配置在MANIFEST.MF资源的Main-Class属性中,项目的引导类定义在Start-Class属性中。
通过Java命令在解压的根目录中引导该类文件,发现项目确实被启动:
java org.springframework.boot.loader.JarLauncher

你可能感兴趣的:(springboot)