立足于核心技术的平台研发

springboot学习笔记——springboot应用创建

一、springboot的运行环境

springboot2.0基于spring framework 5.0开发,最低jdk版本要求为Java 8。springboot采用模块化设计,模块类库管理依赖于Apache Maven,要求版本3.2+,目前springboot源码库已经迁移到gradle编译工具上了。集成开发环境(IDE)推荐使用InteliJ IDEA。

二、初识springboot

springboot首先是spring应用,按应用类型分:Web应用和非Web应用。非Web应用主要用于服务提供、任务调度、消息处理等,Web应用在springboot2.0+支持servlet容器实现(传统servlet、spring web mvc)和Reactive Web容器实现(spring 5.0 WebFlux)。springboot通过嵌入式容器,实现了独立部署和运行能力,完全掌控了应用的全生命周期。

传统spring应用,外置容器需要启动脚本引导,随应用的生命周期回调执行spring上下文的初始化,主要代表实现有:spring web的ContextLoaderListener和Web MVC中的DispatcherServlet。ContextLoaderListener利用ServletContext生命周期构建Web ROOT应用上下文,DispatcherServlet结合servlet的生命周期创建DispatcherServlet的应用生命周期。特点是:被动调用执行。

springboot嵌入式容器是应用的一部分,属于spring应用上下文的组件beans,这些组件和其他组件均由自动装配特性组装成spring bean定义(BeanDefinition),随spring应用上下文启动而注册并初始化。驱动spring应用上下文启动的核心组件是Springboot核心API SpringApplication,所以springboot应用首先是spring应用。

三、springboot应用的创建

两种创建方式:命令行方式、图形化方式。两种运行方式:生产环境运行方式、开发阶段运行方式。命令行(Command-Line)是最传统的人机交互方式。这里以Maven为依赖管理工具展开实例。可以通过创建一个Maven pom.xml文件并添加相应的依赖类库,或者使用maven骨架插件创建应用。

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

<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>

<artifactId>testPro</artifactId>

<version>0.0.1-SNAPSHOT</version>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.2.RELEASE</version>

</parent>

<!—Additional lines to be added here… –>

</project>

1.使用maven archetype插件执行命令行方式创建springboot应用:

mvn archetype:generate -DgroupId=my-spring-boot -DartifacetId=my-frist-bootdemo -Dversion=1.0.0-SNAPSHOT -DinteractiveMode=false -Dpackage=org.zhiletu.spring.boot

其中,archetype是maven-archetype-plugin插件的简称,插件的目标是archetype:generate,后面那些都是archetype插件的参数(Java启动命令中,-D命令行参数设置Java的系统属性:System.getProperties(),

maven插件通过此种方式获取所需的参数)。

interactiveMode为FALSE表示交互模式为静默方式。

创建生成的应用目录结构为:

|—— pom.xml

|—— src

|—— main

|—— java

—— App.java

|—— test

|—— java

—— AppTest.java

App.java与APPTest.java分别为引导类和单元测试类,pom.xml为主POM文件。

在pom.xml中添加springboot依赖:

<!– 增加spring boot web依赖—>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</arifactId>

<version>2.0.2.RELEASE</version>

</dependency>

增加了spring boot依赖后,应用就具备了spring-webmvc和tomcat的能力。

对App.java引导类进行修改:

package org.zhiletu.spring.boot;

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;

/**

* Hello world!

*/

@RestController

@SpringBootApplication

public class App {

@RequestMapping(“/”)

public String index(){

return “Welcome, My Buddy!”;

}

public static void main(String[] args) {

SpringApplication.run(App.class, args

);

}

}

运行应用:mvn spring-boot:run   // 注意此命令的执行,还需要增加spring-boot-starter-parent依赖包。

应用启动成功,过程中打印进程ID、请求映射路径和Web服务端口。

通过浏览器或curl等工具可以检查http://localhost:8080/检查相应结果。

2.使用图形化界面创建Spring Boot应用

spring官方提供了在线创建spring boot应用的图形化工具:https://start.spring.io/。

image

mvn Wrapper文件包括:.mvn目录、执行脚本mvnw和mvn。这是一种简单的maven构建方式,其运行环境不需要提前安装maven二进制文件。

spring boot应用属性配置文件:application.properties。是spring boot默认的应用外配置文件,其配置属性可以控制spring boot应用的行为,如调整Web服务端口。 spring boot支持一定的配置优先级,具体请百度或官方。

3.spring boot应用junit测试文件

提供了spring boot集成测试的基本形式。

package org.zhiletu.spring.boot;

import org.junit.Test;

import org.junit.runder.RunWith;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)

@SpringBootTest

public class FirstAppByGuiApplicationTests {

@Test

public void contextLoads() {

}

}

四、创建spring boot应用可执行jar

可执行jar依赖于spring-boot-maven-plugin到pom.xml。

执行mvn package 或者 mvn clean package打包创建可执行jar。

在工程的target目录下,可以看到项目名称命名的jar包。

运行该jar:java –jar target/xxxx-SNAPSHOT.jar

上一篇
下一篇

相关文章

在线留言

*

*

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

电话:18660802028