前言
springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推广因素不说,框架本身的确有非常多的优点。比如
更简化的配置,摒除了许多繁杂的xml配置(事实证明,越简单的东西越容易让人记住);
内置Servlet容器,不再依赖外部环境
大量的starter模块,随手拈来
支持热部署
作为一名老程序员来说,仍然需要保持一个积极学习的态度。
哎,简单点说就是少点伤感,认清现实。你曾经引以为傲的某某EE 技术已经被颠覆了,赶紧换车道 .....
废话不多说,以下内容主要讲的是怎么利用springboot 这个脚手架搭建一个最精简的项目。
其中几个模块会非常实用,这包括结构、配置、日志、部署..
一、基础结构
springboot 项目仍然是使用maven 进行初始化及构建,下面是一个典型的结构:
| 目录/文件 | 说明|
|-|-|
| pom.xml | 依赖文件 |
| src/main/java | 代码目录 |
| src/main/resources| 配置目录,包含application.properties、log4j2.xml |
| src/main/build | 定义构建文件目录 |
| src/test/java |测试代码 |
| src/test/resources |测试配置 |
大致看一下就行了,不了解maven的话,点击这里先学习入门,项目的构建工具是一定要先了解的。
可以通过eclipse 或idea 创建一个maven项目,再引入springboot依赖,pom文件的定义参考如下:
<?xml version="1.0"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 "
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.zales</groupId>
<artifactId>dmo-boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring-boot.version>1.5.1.RELEASE</spring-boot.version>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- springboot application dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- springweb -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring-boot.version}</version>
<exclusions>
<!-- exclude the default logging module -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- log4j2 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- springboot test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<!-- used for livereload -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<version>${spring-boot.version}</version>
<optional>true</optional>
</dependency>
<!-- used for template -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>${spring-boot.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
springboot 官方的示例是让你继承一个spring-boot-parent,但这个很鸡肋,通常的项目都会有自己的继承结构。
所以我们间接利用spring-boot-dependencies将所有依赖引入,其他模块的引入都是按需。
maven-compiler-plugin的定义用于将项目指定为Java1.8的编译级别。
其他途径
你还可以利用spring的在线网站初始化一个springboot项目,点击这里
二、添加代码
启动代码非常简单,新建一个名为"DemoBoot**的类:
/**
* 入口类
*
*/
@SpringBootApplication
public class DemoBoot {
public static void main(String[] args) throws Exception {
SpringApplication app = new SpringApplication(DemoBoot.class);
// 指定PID生成,默认输出到application.pid
app.addListeners(new ApplicationPidFileWriter());
app.run(args);
}
}