-
【java框架】SpringBoot2(1) -- SpringBoot2入门及基础配置
1.SpringBoot2.x简介
2018年3月,SpringBoot从1.5版本更新到2.0版本,经过2年多时间版本上的迭代沉淀,SpringBoot2.x版本提供了更多更强大的新功能,对于小公司和新项目,很多都直接采用了2.0以上的版本进行开发,而对于已经上线稳定的1.x版本,2.x中核心的注解配置并没有做极大的变动,所以基于1.x学习2.x版本是很容易上手的。
1.1.SpringBoot2.x版本新特性
SpringBoot2.x中主要的一些更新特性如下:
- 配置的变更
在 2.x 中废除了一些 1.x 中的配置,并增加了许多新配置,详细请查看以下链接中的变更表格。
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Configuration-Changelog
- JDK版本的升级
2.x版本至少需要JDK8的支持,并且2.x版本已经开始支持JDK9
- 第三方类库的支持
- 响应式编程支持
- SpringData响应式支持
- web加强
- HTTP/2支持、Actuator加强、Gradle插件支持、Kotlin、Quartz支持、测试支持等
更多详细细节请参阅博文:https://www.cnblogs.com/littleatp/p/10498344.html
或移步至官网:https://spring.io/projects/spring-boot
1.2.SpringBoot2入门HelloWorld
下面基于IDEA使用SpringBoot2.3.4.RELEASE版本进行SpringBoot项目的搭建:
①系统要求:
Java8版本、Maven3.3+、IDEA2018+以上环境
②配置Maven conf/settings.xml文件,修改默认镜像及Jdk maven compiler版本号:
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors> <profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> </profiles>
③基于Spring Initializr(或Maven)构建项目:
④添加starter-web依赖及简化部署配置:
pom.xml
<dependencies> <!--支持web开发依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <!--springboot maven依赖:简化部署打包--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
⑤编写启动类、访问控制器:
@SpringBootApplication //标注这个类是一个springboot应用:启动类下的所有资源被导入 public class Helloword2Application { public static void main(String[] args) { SpringApplication.run(Helloword2Application.class, args); } } //@Controller //@ResponseBody @RestController //相当于@Controller与@ResponseBody public class HelloworldController { @RequestMapping("hello") public String hello(){ return "hello SpringBoot Starter。。。!"; } }
⑥可以在application.properties中修改默认端口配置:
#端口配置
server.port=8082
⑦启动项目,访问验证:
1.3.打包部署
①使用IDEA中Maven工具栏的clean、package可以轻松进行项目的打包部署工作:
②运行之后项目编译成功,生成.jar文件位于target目录下:
③使用window powershell可以执行运行jar包并以tomcat服务启动SpringBoot打包中的jar项目,达到项目启动运行的效果:
2.启动项基础配置
2.1.依赖管理
在pom.xml中SpringBoot基于父工程spring-boot-starter-parent依赖进行了javaversion的管理、配置资源的加载、并集成了编译、测试环境。
而在starter-parent源码中又基于spring-boot-dependencies加载了SpringBoot运行环境需要依赖的常用组件jar包的version号,及无需在父工程中特定
常用jar包的版本号,这个功能叫SpringBoot的版本仲裁:
如果需要自己自定义指定相应的version版本号,则需要配置:
<!--查看spring-boot-dependencies里面规定当前依赖的版本 用的 key--> <!--在当前项目里面重写配置--> <properties> <mysql.version>5.1.43</mysql.version> </properties>
注意:如果引入的是SpringBoot非版本仲裁的jar,则需要配置version版本号。
2.2.包扫描注解
查看@SpringBootApplication源码可以得出,@SpringBootApplication相当于@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan
@SpringBootApplication(scanBasePackages = "com.fengye.helloword2") //标注这个类是一个springboot应用:启动类下的所有资源被导入 //@SpringBootConfiguration //@EnableAutoConfiguration //@ComponentScan("com.fengye.helloword2") //以上三个注解等同于@SpringBootApplication public class Helloword2Application { public static void main(String[] args) { SpringApplication.run(Helloword2Application.class, args); } }
2.3.热部署启动
SpringBoot提供了热部署启动的功能,基于热部署可以在开发时利用“Ctrl+F9”快捷键基于页面或者配置端口的修改重启SpringBoot项目,节省开发中修改反复重启浪费的时间。
<!--热部署更新--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency>
基于spring-boot-devtools热部署只是一个“restart”重启的功能(更新动态页面),如果想要使用纯正的热更新“reload”的方式,需要安装JRebel插件。
本博客写作参考文档相关:
https://www.cnblogs.com/littleatp/p/10498344.html
https://spring.io/projects/spring-boot
示例代码已上传至Github地址:
https://github.com/devyf/SpringBoot_Study/tree/master/helloword_create
原文:https://www.cnblogs.com/yif0118/p/14542817.html