只需低头努力,剩下的交给时光,时间会公平地帮你处理一切
概述
提到Spring框架,相信只要是学过Java的都很熟悉,那SpringBoot是个什么框架呢?
我们学习一个框架首先需要搞清楚这个框架是做什么的?为了解决什么问题?
SpringBoot是什么?
Spring Boot可以很容易地创建独立的、基于Spring的生产级应用程序,致力于以“最少的配置”来完成应用的开发
从字面上理解,就是SpringBoot的使命就是减少配置,让开发变得更高效
为了解决什么问题?
在Spring时代,我们需要开发一个功能或者使用第三方的组件,都需要进行一系列的配置,才能完成组件最基础功能的开发
SpringBoot的到来,简化了开发过程中配置,让应用以更少的配置来完成功能的运行。
其实从根本上讲SpringBoot并没有减少配置,只是把一些约定俗成的配置变成了自动配置,
SpringBoot会根据依赖的Jar来“猜测”你可能需要用到的功能,从而加载应用的默认配置,
让你在使用第三方的组件时可以用很少的配置来完成基本的功能
SpringBoot相比Spring有什么新特性
- SpringBoot直接内嵌Tomcat、Jetty等应用服务器,你开发的应用直接运行,不用打成war包,这应该是对SpringBoot最直观的印象
- SpringBoot提供了很多"Starter"依赖包用来简化配置,比如redis、rabbitmq等中间件都有现成的"Starter",引入时可以以很少的配置来完成基本的功能
- 尽可能的自动配置Spring和引入的第三方库
- SpringBoot提供了生产环境的监控、运行状态检查以及外部化配置
以上是我认为SpringBoot最重要的几个特性,这些特性能让我们的应用看起来更简洁,使研发人员更专注于业务功能的实现。
第一个SpringBoot程序:HelloWorld
也不知道是从什么时候开始的,不管学习什么编程语言,大家都习惯从HelloWorld开始,HelloWorld是一切学习的开端。下面我们就用SpringBoot来构建一个最简单的HelloWorld应用程序
环境说明:
- JDK1.8
- SpringBoot2.4.3
- gradle4.4
1、创建一个gradle项目,并引入依赖
compile 'org.springframework.boot:spring-boot-starter-parent:2.4.3'
compile 'org.springframework.boot:spring-boot-starter-web:2.4.3'
引入依赖后,默认会从maven中央仓库拉取依赖项,慢到你怀疑人生!!!
这里建议使用国内的maven私服,比如阿里云的maven私服,需要在gradle配置里面新增配置
allprojects {
repositories {
maven {
url 'https://maven.aliyun.com/repository/public/'
}
mavenLocal()
mavenCentral()
}
}
2、写一个HelloWorld类
@RestController
@EnableAutoConfiguration
public class HelloWorld {
@RequestMapping("/hello")
String index(){
return "hello world";
}
public static void main(String[] args){
SpringApplication.run(HelloWorld.class,args);
}
}
这里使用到了几个注解,@RestController和@RequestMapping是SpringMVC中的注解,只要是做过SpringMVC开发的同学肯定很熟悉这两个注解,@RestController用来标记Controller,@RequestMapping用来声明一个Http接口
@EnableAutoConfiguration注解是SpringBoot中的,该注解会根据你添加的依赖jar包来“猜测”你希望如何配置Spring
举个例子,你某天出门上班,看到别人带了雨伞,你立马意识到可能是要下雨了
这里SpringBoot也是一样,看到你的依赖项里面有某个组件,就会帮你做好自动配置
上面例子中依赖的web,SpringBoot会识别出来自动完成web相关的配置
3、运行程序
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.3)
2021-02-22 20:13:46.544 INFO 11344 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2021-02-22 20:13:47.069 INFO 11344 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2021-02-22 20:13:47.089 INFO 11344 --- [ main] c.gzb.springboot.helloworld.HelloWorld : Started HelloWorld in 4.994 seconds (JVM running for 8.934)
如果看到如上的信息,说明你的项目已经启动成功了,访问http://localhost:8080/hello可以在网页上显示出来
hello world
至此一个SpringBoot版的HelloWorld就完成了,可以看到自始至终你只做了两件事:加入依赖、写Java代码。
完全没有写一行配置,SpringBoot帮你完成了自动配置,让你专注于功能开发
把项目打成jar包运行
使用gradle把项目打成jar包,可以直接以jar包的形式启动应用
在项目中引入boot插件
plugins {
id 'java'
id 'org.springframework.boot' version '2.0.0.RELEASE'
}
增加打包配置,指定mainClassName
bootJar {
mainClassName = 'com.gzb.springboot.helloworld.HelloWorld'
}
运行 gradle build 在项目根目录下会生成一个build目录,在build/lib目录下就会生成项目的jar包
直接运行 java -jar springBoot-demo-1.0-SNAPSHOT.jar即可启动应用
源码已上传至https://github.com/pzjtian/springboot-demo,请持续关注~
如果感觉对你有些帮忙,请收藏好,你的关注和点赞是对我最大的鼓励!
如果想跟我一起学习,坚信技术改变世界,请关注【Java天堂】公众号,我会定期分享自己的学习成果,第一时间推送给您