博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot学习笔记-快速示例
阅读量:6587 次
发布时间:2019-06-24

本文共 3780 字,大约阅读时间需要 12 分钟。

hot3.png

笔者最近在学习Spring Boot的参考指南,很兴奋!因为Spring Boot中有太多的亮点值得点赞了,笔者认为,当你从无到有,经历过所有的痛点或迷茫之后,突然有一个“神器”帮你解决了之前的困惑时,你对这个“神器”才会有更深刻的感悟及印象。

Spring Boot简介

简单介绍下Sring Boot:Spring Boot使开发独立的, 产品级别的基于Spring的应用变得非常简单, 你只需"just run"。 我们为Spring平台及第三方库提供开箱即用的设置, 这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Spring配置。

很明显,Spring Boot可以很方便地帮你构建基于Spring开发的应用!

Spring Boot的主要目标是:

  • 为所有的Spring开发提供一个从根本上更快的和广泛使用的入门经验。
  • 开箱即用, 但你可以通过不采用默认设置来摆脱这种方式。
  • 提供一系列大型项目常用的非功能性特征( 比如, 内嵌服务器, 安全, 指标, 健康检测, 外部化配置) 。
  • 绝对不需要代码生成及XML配置。

Spring Boot基于Maven的应用

Spring Boot建议使用JDK1.6或更高的版本,但尽管Spring Boot兼容Java 1.6, 如果可能的话, 你应该考虑使用Java最新版本。指南中建议使用JDK8,可见其前卫性呀。

通常推荐使用者使用一个支持依赖管理的构建工具( 比如Maven或Gradle),Spring Boot对这两种构建工具进行了完美的结合。

由于笔者主要是进行的Web开发,并且使用Maven已久,因此重点记录Spring Boot + Maven的应用。Maven需要3.2或更高的版本。

Spring Boot不会破坏Maven已有的规则,相反Spring Boot会根据Maven的最佳实践,给出更方便的配置与操作。

Maven项目中引入Spring Boot

在pom.xml中添加如下配置即可:

org.springframework.boot
spring-boot-starter-parent
1.3.0.BUILD-SNAPSHOT

Spring Boot提供很多"", 这能够让你轻松的将jars添加到你的classpath下。

程序已经在POM的partent节点使用了spring-boot-starter-parent。spring-boot-starter-parent是一个特殊的starter,它提供了有用的Maven默认设置,例如项目默认是基于UTF8的编码,编译环境默认为JDK1.6等等。同时,它也提供了一个dependency-management节点, 这样对于“blessed”依赖你可以省略version标记。

当然你可能并不需要spring-boot-starter-parent,后续会有“Spring Boot without the parent POM”的办法。

当然我需要构建一个Spring MVC项目,单单上面的配置是不够的,还需要另一个“Starter POM”,只需在pom.xml中添加依赖即可:

org.springframework.boot
spring-boot-starter-web

这个spring-boot-starter-web会把开发Spring MVC应用所可能用到的依赖自动地帮你加载进来。可以通过mvn dependency:tree命令查看。

添加一个Spring Boot的Maven插件,它可以提供更多的Maven功能。

org.springframework.boot
spring-boot-maven-plugin

这个插件既可以使我们应用mvn spring-boot:run命令来运行程序,也可以帮我们二次打包应用为可运行的jar包!Java没有提供任何标准的加载内嵌jar文件(即jar文件中还包含jar文件)的方法,Spring Boot采取一个不同的途径,并允许你真正的内嵌jars。

当然要使用插件二次打包这个特性,需要绑定repackage目标的 <executions> 配置。如果你不使用parent POM, 你将需要自己声明该配置。具体可参见。

最后,如果你使用的Spring Boot不是release版本,可能需要在pom.xml中添加以下配置:

spring-snapshots
http://repo.spring.io/snapshot
true
spring-milestones
http://repo.spring.io/milestone
spring-snapshots
http://repo.spring.io/snapshot
spring-milestones
http://repo.spring.io/milestone

示例要点

上述的项目pom.xml配置完成后,写一个简单的SpringMVC的示例。

首先建立一个DemoController。

@RestControllerpublic class DemoController {    @RequestMapping("/demo")    String home() {        return "Hello World!";    }}

然后建立一个项目的启动类,同时“兼职”Spring的Java配置类。

@Configuration@EnableAutoConfiguration@ComponentScan   public class Application {    public static void main(String[] args) throws Exception {        SpringApplication.run(Application.class, args);    }}

要项目跑起来有常用的两种方式:

  • 使用mvn spring-boot:run命令,当然这多亏了Spring Boot的Maven插件。
  • 先使用mvn package命令将项目打包(maven打包后,Spring Boot Maven插件会将jar包二次打包),然后在命令行运行"java -jar xxx.jar"即可。

**ps:**在项目的target目录下,xxx.jar.original是Maven打包的原始jar包,xxx.jar是插件的二次打包。

项目跑起来后,浏览器地址栏输入"localhost:8080/demo",验证"Hello World!"结果。

到此你可能会疑惑,Spring MVC项目里为什么会有main函数?没有Servlet容器,项目是怎么运行起来的呢?

main函数可以暂时先理解为Spring Boot应用(基于Spring Boot构建的应用)的独特运行方式。

Spring Boot打出的jar包之所以有单独运行的能力,并不是脱离了Servlet容器,而是将内嵌的Servlet容器一起打包了!这归功于上面的spring-boot-starter-web依赖。Sring Boot对多种内嵌容器进行了支持,只需要配置相关的starter依赖即可。

**ps:**查看文档可以看出,Spring Boot对Servlet容器的支持,Servlet版本均在3.0以上,需要使用者多了解Servlet3.0的机制。

将应用打包成jar运行,一个好处是你可以像Java SE那样来运行程序;更有利的一点是,可执行jars可用于生产部署。由于它们是自包含的,非常适合基于云的部署。

转载于:https://my.oschina.net/angerbaby/blog/548243

你可能感兴趣的文章
加密、解密、openssl的基本应用以及CA的实现过程
查看>>
RAID 详解
查看>>
锁-概念:可重入锁、可中断锁、公平锁、读写锁
查看>>
参加培训的感想
查看>>
linux 查找并删除
查看>>
数据结构与算法 3:二叉树,遍历,创建,释放,拷贝,求高度,面试,线索树
查看>>
request使用
查看>>
Win10文件管理器那些你不知道的秘密
查看>>
更改MyEclipse的默认编码
查看>>
Nordic Collegiate Programming Contest 2016
查看>>
cisco 交换机设置时区、时间、同步日志本地时间等操作
查看>>
获取网页源码
查看>>
从oracle到mysql,主从到分库,一个普通项目数据库架构的变迁
查看>>
数据结构
查看>>
一个简简单单检测http服务状态的脚本
查看>>
单例模式2014-12
查看>>
win32 ——定时器消息 小程序:打印时间
查看>>
USACO全部月赛及GateWay数据
查看>>
【AtCoder】ARC 081 E - Don't Be a Subsequence
查看>>
1 4 空格替换
查看>>