SpringBoot框架已经成为Java开发人员必须掌握的框架之一,它的简洁、高效、易扩展性是它成为当今JavaWeb开发领域最受欢迎的框架,它并不是一款全新的框架,它以Spring框架为基础,整合其他第三方框架,为开发者提供了更加轻松、愉快的开发模式,下面我们一步步来搭建一套属于我们自己的SpringBoot框架。
第一步、配置依赖
这里我们使用Maven来构建项目,下面我先将完整的pom.xml贴出来,然后再逐个解释其用途。
例子,pom.xml配置文件编写
4.0.0 com.icypt.sboot article-01 0.0.1-SNAPSHOT jar 2.1.11.RELEASE org.springframework.boot spring-boot-dependencies ${spring.boot.version} pom import org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin
以上是构建一个基于SpringBoot框架的web项目最简洁的Maven配置,下面来解读一下此配置的用途。
以上配置中节点是pom.xml配置文件的根节点,所有的Maven配置都必须写在此节点之内,其属性定义了xml配置文件的命名空间和描述文件.
4.0.0com.icypt.sbootarticle-010.0.1-SNAPSHOTjar
这部分配置是我们创建一个Maven项目之后最初始的配置:
:描述这个POM文件是遵从哪个版本的项目描述符;
:项目所属组唯一描述符,通常以Java包名称命名规则编写;
:项目唯一描述符,通常为项目名称;
:项目版本;
:打包类型,默认为jar,此外还有:war、pom等。
2.1.11.RELEASE
节点定义了Maven配置的属性列表,其每一个属性都可以通过${属性名称}的方式获取其属性值。
以上这些配置都是Maven构建项目过程中使用的最基础的配置,下面才是与SpringBoot框架相关的依赖配置。
org.springframework.boot spring-boot-dependencies ${spring.boot.version} pom import
,顾名思义依赖管理节点,在这里我们定义了SpringBoot框架所需依赖的版本,有了它在后续添加依赖的时候就不需要指定版本了,Maven会根据我们在依赖管理中定义的版本智能的为我们添加依赖。
org.springframework.boot spring-boot-starter-web
节点使我们手动添加依赖的位置,这里我们只是添加了SpringBoot框架的web依赖,SpringBoot提供的Maven依赖很有特点,绝大部分都是以spring-boot-starter-模块名称命名。加入这个依赖后,Maven会自动把SpringBoot的web模块所需的jar包全部引入到我们的项目中,很是方便,解决了我们之前学习SpringMVC时总是缺包、包不兼容等一系列包依赖的问题,以后我们需要哪个模块就引入模块所对应的Starter就OK了。
org.springframework.boot spring-boot-maven-plugin
节点定义了项目的编译、打包方式,这里我们依赖了SpringBoot独家所有的maven插件来对我们的项目进行编译和打包。
第二步、项目构建
以上是关于SpringBoot框架的依赖配置介绍,下面我们来看SpringBoot项目的结构。
这张图是SpringBoot官方推荐的项目结构,我们在此基础之上略作修改就可以创建一个可以用于生产的项目结构。
通常情况下common包下主要编写工具类等一些公共组件,config下主要编写基于Java代码的配置类,此外就是按功能进行划分模块,以模块名称简易命名包名来划分各个模块功能类所在的包,这样可以使得我们的项目代码阅读起来简单明了,每个模块下通常由四个文件构成,以test模块为例:
Test.java: 是与数据库表字段对应的实体类。
TestController:是处理请求的控制器。
TestService:是业务处理代码所在位置,主要为控制器提供模型数据。
TestRepository:是持久层代码所在位置,主要为业务处理层打通与数据库沟的通桥梁。
第三步、编写启动类
启动类的命名方式通常是项目名称+Application后缀,为了美化其间可稍作修饰,但是必须符合Java类名称命名规则。
定义启动类
package com.base.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class BaseDemoApplication { public static void main(String[] args) { SpringApplication.run(BaseDemoApplication.class, args); }}
关于启动类我们暂且认为是固定格式,在后续的文章中我们会详细介绍启动类的使用。
这里需要注意的是SpringBoot框架的启动类所处的位置是非常有讲究的,它必须位于项目的root包下,如果你不遵守这一约定,用官方的话说:
It can cause particular problems for Spring Boot applications that use the @ComponentScan, @EntityScan, or @SpringBootApplication annotations, since every class from every jar is read.
Spring官方文档
可能会出现一些特殊的问题,当然主要还是体现在包的扫描路径上,这个会在后续的文章中提到的。
第四步、创建SpringBoot核心配置文件
配置文件有两种格式:application.properties和application.yml,可根据个人喜好来定义,以.properties结尾的配置文件比较常用也比较符合java开发规范,以.yml结尾的配置文件其结构更加清晰。
栗子,定义application.properties配置文件
server.port=7901 server.servlet.context-path= /test
server.port:定义访问端口
server.servlet.context-path:定义项目上下文
这里只是稍作演示,其实就算我们不创建此配置文件,项目也能正常运行,默认的访问端口为8080,上下文为“/”,这个从启动日志就可以获得,更多SpringBoot的配置项可以从官方文档的附录一中获得,地址:
https://docs.spring.io/spring-boot/docs/2.1.11.RELEASE/reference/html/common-applicati
第五步、编写简单测试类
例子,编写测试Controller
package com.base.demo.Test;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { @RequestMapping("/test") public Object test() { return "ok"; }}
@RestController等价于@Controller和@ResponseBody,表示的是此控制器将return的结果直接返回给页面,默认是json格式。
第六步,启动项目
不同的ide启动方式不同,我这里使用的是eclipse,启动方式如下:
1、点击项目右键选择Run As --> RunConfigurations
2、配置启动类
3、启动SpringBoot项目
看到如图所示日志证明我们的SpringBoot项目已经启动成功,端口7901,上下文“/Test”,我们的测试路径应该是:
http://localhost:7901/BaseDemo/test
第七步、验证
至此,一个最简单的SpringBoot的web项目构建完成,可以说是非常之简单,当然这只是一个最基础的演示,随着后续的学习你会发现,只要我们秉承“约定优于配置”的理念,那么我们的开发过程将会变得非常简洁。