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/。
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
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《springboot学习笔记——springboot应用创建》
本文地址:http://www.xiupu.net/archives-10017.html
关注公众号:
微信赞赏
支付宝赞赏