如果要为 SpringBoot 下一个定义。
我认为最准确的是:当下 JavaWeb 最流行的脚手架。
跟着我一起构建你的第一个 SpringBoot 应用。
— 第1步 —
新建 Maven 项目
如上图,填写好 GroupId/ArtifactId 点下一步即可完成。
初始化后的 maven 项目结构如下表:
目录/文件 | 说明 |
pom.xml |
依赖描述文件 |
src/main/java |
代码目录 |
src/main/resources |
配置目录,包含application.properties |
src/test/java |
测试代码 |
src/test/resources |
测试配置 |
maven 是开发Java 项目必备的一个构建工具。
— 第2步 —
配置依赖组件
pom.xml 这个文件描述了整个项目将会依赖的各个组件,为了将SpringBoot 框架引入,需要编辑 pom.xml,添加如下内容:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-boot.version>2.1.4.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>
<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>
<说明>
大部分 springboot 的样例项目中会让你继承一个spring-boot-parent,但这个很鸡肋,因为许多项目都会有自己的父级项目。
所以我们间接利用spring-boot-dependencies将所有依赖引入,其他模块的引入都是按需,这包括了:
-
spring-boot-starter-web 用来引入SpringMVC 框架
-
spring-boot-starter-log4j2 用来使用 log4j2 日志框架
-
spring-boot-starter-thymeleaf 用来支持 thymeleaf 动态页面模板(页面渲染引擎)
-
spring-boot-starter-test 用于支持 SpringBoot 的单元测试
-
spring-boot-devtools 则是用于支持代码的热加载
而除此以外,我们还通过maven-compiler-plugin的定义用于将项目指定为Java1.8的编译级别。
— 第3步 —
添加基础代码
启动代码非常简单,新建一个名为SearchBoot的类:
/** * 入口类 * */@SpringBootApplicationpublic class SearchBoot {
public static void main(String[] args) throws Exception { SpringApplication app = new SpringApplication(SearchBoot.class);
// 指定PID生成,默认输出到application.pid app.addListeners(new ApplicationPidFileWriter()); app.run(args); }}
再创建一个SearchController类:
@Controllerpublic class SearchController {
@RequestMapping("/") @ResponseBody String home() { return "Hello World! "; }}
这样,我们就完成了最基本的一个Http请求控制器。
— 第四步 —
配置文件
接下来 在 src/main/resources/ 下新建一个application.properties文件,内容如下:
server.address=0.0.0.0server.port=8090
参数名称 | 参数说明 |
server.address |
监听地址,不配置或0.0.0.0即不限制 |
server.port |
监听端口 |
为了支持日志输出,我们需要在src/main/resources/ 下新建一个log4j2.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?><Configuration status="INFO" monitorInterval="300"> <properties> <property name="LOG_ROOT">log</property> <property name="FILE_NAME">application</property> </properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}–[%t] %-5level -%l - %msg%n" /> </Console> <RollingRandomAccessFile name="MainFile" fileName="${LOG_ROOT}/${FILE_NAME}.log" filePattern="${LOG_ROOT}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd HH}-%i.log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}–[%t] %-5level -%l - %msg%n" /> <Policies> <TimeBasedTriggeringPolicy interval="1" /> <SizeBasedTriggeringPolicy size="50 MB" /> </Policies> <DefaultRolloverStrategy max="20" /> </RollingRandomAccessFile> </Appenders>
<Loggers> <Logger name="org.hscoder" level="info" additivity="true"> <AppenderRef ref="MainFile" /> </Logger> <Root level="info"> <AppenderRef ref="Console" /> <AppenderRef ref="MainFile" /> </Root> </Loggers></Configuration>
— 第5步 —
运行程序
在IDEA 中右键,选择执行 SearchBoot 启动程序,从控制台可以看到如下的日志:
这样便表示我们的第一个SpringBoot 应用已经启动,并同时监听了8090端口。通过浏览器打开 http://localhost:8090,可以看到响应结果如下:
3元订阅这个微专栏
快速入门SpringBoot