【SpringBoot 框架】- 入门——环境搭建、工程热部署、idea快捷创建SpringBoot项目 逃离我推掉我的手 2021-09-20 23:08 215阅读 0赞 > ### SpringBoot 系列: ### > > [【SpringBoot 框架】- 入门——环境搭建、工程热部署、idea快捷创建SpringBoot项目][SpringBoot _- _idea_SpringBoot] > [【SpringBoot 框架】- SpringBoot 原理分析][SpringBoot _- SpringBoot] > [【SpringBoot 框架】- SpringBoot 配置文件][SpringBoot _- SpringBoot 1] > [【SpringBoot 框架】- SpringBoot 整合 Mybatis、Junit、Redis][SpringBoot _- SpringBoot _ Mybatis_Junit_Redis] **目录** 一、概述 1、SpringBoot简介 2、SpringBoot 特点 3、SpringBoot 核心功能 二、SpringBoot 环境搭建 1、创建maven工程 2、添加SpringBoot的起步依赖 3、编写SpringBoot引导类 4、编写 controller 5、测试 SpringBoot 三、SpringBoot 工程热部署 1、配置 idea 2、配置 pom.xml 四、idea快速创建SpringBoot项目 1、创建Spring Initializr模块 2、手动创建 controller 3、运行测试 -------------------- # 一、概述 # ## 1、SpringBoot简介 ## > SpringBoot官网说:“Spring Boot使创建独立的、生产级的基于Spring的应用程序变得很容易,您可以“直接运行”这些应用程序。”也就是说,SpringBoot对上述Spring的缺点进行的改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务之间进行思维的切换,全身心的投入到逻辑业务代码编写中,从而大大提高了开发效率,一定程度上缩短了项目周期。 相对于ssm框架的整合(ssm框架整合可以参考这篇博客:[https://blog.csdn.net/One\_L\_Star/article/details/102941637][https_blog.csdn.net_One_L_Star_article_details_102941637]),SpringBoot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成,SpringBoot 真香! ## 2、SpringBoot 特点 ## > * 为基于Spring的开发提供更快的入门体验 > * 开箱即用,没有代码生成,无需配置xml文件,还可以修改默认值来满足特定的需求 > * 提供了一些大型项目中常见的非功能特性,如嵌入式服务器、安全、指标、健康监测、外部部署等 > * SpringBoot 不是对Spring 功能上的增强,而是提供了一种快速使用Spring的方式 ## 3、SpringBoot 核心功能 ## > * 起步依赖: > > * 起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能,简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。 > * 自动配置: > > * SpringBoot自动配置是一个运行时(更准确的说是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的 # 二、SpringBoot 环境搭建 # ## 1、创建maven工程 ## 【1】点击:文件--->模块,选择 Maven,直接点击下一个 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70][] 【2】添加模块 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 1][] 【3】保存路径,点击完成 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 2][] 创建好后目录结构如下: ![20191113095117580.png][] ## 2、添加SpringBoot的起步依赖 ## 【1】在pom.xml文件里面添加SpringBoot的起步依赖,SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.1.RELEASE</version> </parent> 【2】在pom.xml文件里面添加web的启动依赖,SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ## 3、编写SpringBoot引导类 ## 在java文件夹下创建SpringBoot引导类:cn.star.mySpringBootApplication * @SpringBootApplication注解:申明该类是一个SpringBoot引导类 * run方法:表示运行SpringBoot的引导类,参数是SpringBoot引导类的字节码对象 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 3][] package cn.star; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 〈一句话功能简述〉<br> * 〈SpringBoot引导类〉 * * @author OneStar * @create 2019/11/13 * @since 1.0.0 */ @SpringBootApplication //申明该类是一个SpringBoot引导类 public class mySpringBootApplication { //入口方法 public static void main(String[] args) { //表示运行SpringBoot的引导类,参数是SpringBoot引导类的字节码对象 SpringApplication.run(mySpringBootApplication.class); } } ## 4、编写 controller ## 创建Controller:cn.star.controller.QuickController ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 4][] package cn.star.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * 〈一句话功能简述〉<br> * 〈控制层〉 * * @author OneStar * @create 2019/11/13 * @since 1.0.0 */ @Controller public class QuickController { @RequestMapping("/quick") @ResponseBody public String quick(){ return "SpringBoot真香"; } } ## 5、测试 SpringBoot ## 运行mySpringBootApplication中的main方法,然后在浏览器中输入url:[http://localhost:8080/quick][http_localhost_8080_quick],可以看到idea控制台打印信息和网页信息 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 5][]![2019111314072782.png][] # 三、SpringBoot 工程热部署 # 我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。热部署分为两个步骤: * 对 idea 进行自动编译设置 * 在 pom.xml 进行配置 ## 1、配置 idea ## 【1】文件(file)--->设置(setting)--->编辑器(Compiler),勾选如图,点击应用,确定 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 6][] 【2】按住快捷键:Shift+Ctrl+Alt+/,选择注册(Registry) ![20191113152431162.png][] ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 7][] ## 2、配置 pom.xml ## <!--热部署配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 配置好后只需要启动一次,修改代码后不需要再次启动即可运行 # 四、idea快速创建SpringBoot项目 # ## 1、创建Spring Initializr模块 ## 【1】点击:文件--->模块,选择 Spring Initializr,直接点击下一个 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 8][] 【2】填写相关选项,点击下一个 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 9][] 【3】这个页面选项是选择SpringBoot需要的启动依赖,在这里可以有很多选项,这里选择 Web,然后点击下一步 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 10][] 【4】保存路径,点击完成 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 11][] 【5】创建好后目录结构如下 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 12][] ## 2、手动创建 controller ## 创建controller: cn.star.controller.QuickController ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 13][] package cn.star.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 〈一句话功能简述〉<br> * 〈控制层〉 * * @author OneStar * @create 2019/11/13 * @since 1.0.0 */ @RestController public class QuickController { @RequestMapping("/quick2") public String quick(){ return "SpringBoot真香!!!"; } } ## 3、运行测试 ## 运行MyspringbootApplication类中的main方法,控制台和网页显示: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 14][]![20191113164803806.png][] -------------------- ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 15][] [SpringBoot _- _idea_SpringBoot]: https://blog.csdn.net/One_L_Star/article/details/103033571 [SpringBoot _- SpringBoot]: https://blog.csdn.net/One_L_Star/article/details/103056583 [SpringBoot _- SpringBoot 1]: https://blog.csdn.net/One_L_Star/article/details/103100964 [SpringBoot _- SpringBoot _ Mybatis_Junit_Redis]: https://blog.csdn.net/One_L_Star/article/details/103133772 [https_blog.csdn.net_One_L_Star_article_details_102941637]: https://blog.csdn.net/One_L_Star/article/details/102941637 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70]: /images/20210920/e4ca390fc5ee4d1bb7c0e31d57a4e909.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 1]: /images/20210920/f717f4508a6b488d88b79543df5c4ca2.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 2]: /images/20210920/e74b8f9bc144474892d81f672e4d6fba.png [20191113095117580.png]: /images/20210920/685997b69ccb40b9acedae099634befb.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 3]: /images/20210920/809e21b700cf41eb9c681c74eb96c4f9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 4]: /images/20210920/1466e5427cbd4cdca2a8eb5114d59e31.png [http_localhost_8080_quick]: http://localhost:8080/quick [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 5]: https://img-blog.csdnimg.cn/20191113140702459.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI=,size_16,color_FFFFFF,t_70 [2019111314072782.png]: /images/20210920/54b5e9f401a9414198c8b2d5d196c8f8.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 6]: /images/20210920/6a6d7fdc173049d9810fd8a03836e785.png [20191113152431162.png]: /images/20210920/64e05256194e4cc7935c9dd891cd09d3.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 7]: /images/20210920/a39be0008c4b4e1bb14253c72c1489f9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 8]: /images/20210920/7ddcca969f144dc4aedeeadfbed75605.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 9]: /images/20210920/514192cd7ada4e7cad2060182633a0ff.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 10]: /images/20210920/176f4cb13a324e3d9569fe1e07a3c20e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 11]: /images/20210920/370224f10d684ef5a8377e2a2434cd14.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 12]: /images/20210920/918070260280482e9388b99cb21193ce.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 13]: /images/20210920/a576406aba6f428f81d03ec8ce6e8847.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 14]: https://img-blog.csdnimg.cn/20191113164750400.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI=,size_16,color_FFFFFF,t_70 [20191113164803806.png]: /images/20210920/d535111441cf45059071946c7ec53125.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L09uZV9MX1N0YXI_size_16_color_FFFFFF_t_70 15]: /images/20210920/271e1616f3da4d4facad89624737bbb3.png
还没有评论,来说两句吧...