SpirngBoot编程初识
提示:本小记中对于IDE工具作用的是Eclipse sts,构建工具使用Maven,如果对些不熟悉的可以参考阅读:https://blog.csdn.net/advent_java/article/details/109301197
本小记学习目标
-
Maven传统项目开发问题
-
SpringBoot开发框架的作用
-
编写第一个SpringBoot程序
一、Maven传统项目开发问题
说到Java项目的开发必须说一下MVC,因为MVC已经成为了几乎所有项目的设计模式。使用MVC的设计模式可以有效地实现显示层、控制层、业务层、数据层的分离。
如下图是一个标准的MVC设计模式架构图:
![](https://i-blog.csdnimg.cn/blog_migrate/c1f5224415afb22c5eb5df9efc2e4893.png)
MVC开发具有良好地可扩展性,同时也经历有很多项目的考验基本成为了JAVA项目的标配,但是在实现开发中也会感受到一些问题
-
如果使用原生Java程序实现MVC设计模式,一旦没有做好整体的规划设计,会存在大量的重复代码,并且后续项目的维护会存在一定的困难。
-
为了简化MVC中各层的开发,经常会引入大量的第三方框架,这些框架需要在Spring中实现整合,这会导致在项目中存在大量的配置文件。
-
当使用一些第三方的服务组件(MQ、Kafka、JavaMail ……)时,需要编写大量重复配置文件,而且还需要根据环境来定义不同的profile。
-
当使用Maven作为构建工具时,需要配置大量的依赖关系,并且程序需要被打包成为war包并部署到服务器才可以执行。
-
Restful作为接口技术应用非常普遍了,如果使用Spring搭建Restful服务,需要引入大量的Maven依赖同时需要编写大量的配置文件。
上述所说的问题JavaEE官方并没有提供好的技术上的支持,它依然只提供了原始的技术支持。
二、SpringBoot框架
SpringBoot是Spring开发框架提供的一种扩展支持,其目的是为了简化开发,让开发人员重心可以放在业务功能的实现上。
SpringBoot开发框架有如下核心功能
-
独立运行的Spring项目:它可以以jar包的形式直接运行在有JDK的主机上。
-
内嵌了Web容器:它内嵌了Tomcat容器和Jetty容器。
-
简化Maven配置:在SpringBoot中会提供一系列使用starter的依赖配置来简化Maven配置文件的定义。
-
自动配置Spring:使用合理的项目组织结构,使用Spring的配置注解自动生效。
-
减少xml配置:在SpringBoot中依然支持xml配置,也可以利用Bean的自动配置机制来减少xml配置文件的定义。
三、编写第一个SpringBoot程序
SpringBoot编程需要依赖Maven或Gradle构建工具完成,我们可以使用Maven来进行构建开发。
1.新增一个Maven的jar工程,在pom.xml文件中添加SpringBoot的依赖配置及相关的插件
<
packaging
>jar
</
packaging
>
<
parent
>
<!-- 引入SpringBoot -->
<
groupId
>org.springframework.boot
</
groupId
>
<
artifactId
>spring-boot-starter-parent
</
artifactId
>
<
version
>1.5.9.RELEASE
</
version
>
</
parent
>
<
properties
>
<
jdk.version
>1.8
</
jdk.version
>
<
project.build.sourceEncoding
>UTF-8
</
project.build.sourceEncoding
>
</
properties
>
<!-- 定义依赖配置 -->
<
dependencies
>
<
dependency
>
<
groupId
>
junit
</
groupId
>
<
artifactId
>
junit
</
artifactId
>
<
scope
>test
</
scope
>
</
dependency
>
<
dependency
>
<
groupId
>org.springframework.boot
</
groupId
>
<
artifactId
>spring-boot-starter-web
</
artifactId
>
</
dependency
>
</
dependencies
>
<
build
>
<
finalName
>WFW_001
</
finalName
>
<
plugins
>
<!-- 配置编译插件 -->
<
plugin
>
<
groupId
>org.apache.maven.plugins
</
groupId
>
<
artifactId
>
maven-compiler-
plugin
</
artifactId
>
<
configuration
>
<!-- 源代码开发版本 -->
<
source
>${jdk.version}
</
source
>
<!-- 目标class的编译版本 -->
<
target
>${jdk.version}
</
target
>
<
encode
>${project.build.sourceEncoding}
</
encode
>
</
configuration
>
</
plugin
>
</
plugins
>
</
build
>
注意:在配置完pom.xml文件后需要更新项目否则项目上会有一个小红叉,【右键项目--->Maven--->Update Project...】
2.新增一个控制器类:com.xiaoxie.controller.SampleController
package com.xiaoxie.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
//控制器的注解
@EnableAutoConfiguration
//启用自动配置
public
class SampleController {
@RequestMapping(
"/")
//访问映射路径
@ResponseBody
//Restful返回形式
public String index() {
return
"第一个SpringBoot项目";
}
public
static
void main(String[]
args) {
SpringApplication.
run(SampleController.
class,
args);
//启动SpringBoot项目
}
}
3.在项目右键--->Run As--->Spring Boot APP
当程序运行起来后在浏览器访问:
http://localhost:8080/
这个时候页面会显示文件信息:第一个SpringBoot项目
从上面这个项目中我们可以看到
SpringBoot中使用简捷的开发模式,在开发过程中使用一系的注解来简化开发而不被大量的配置文件和依赖困扰
有一个需要注意的点:SpringBoot开发是需要Maven或Gradle构建工具来支持的