如果要为 SpringBoot 下一个定义。

我认为最准确的是:当下 JavaWeb 最流行的脚手架。

你的第一个 SpringBoot 应用_SpringBoot

跟着我一起构建你的第一个 SpringBoot 应用。

— 第1步 —

新建 Maven 项目

你的第一个 SpringBoot 应用_SpringBoot_02

如上图,填写好 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 应用_SpringBoot_03>

大部分 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 应用_SpringBoot_04

这样便表示我们的第一个SpringBoot 应用已经启动,并同时监听了8090端口。通过浏览器打开 http://localhost:8090,可以看到响应结果如下:

你的第一个 SpringBoot 应用_SpringBoot_05

 

3元订阅这个微专栏你的第一个 SpringBoot 应用_SpringBoot_03

《Spring Boot 爬虫搜索轻松游》

快速入门SpringBoot