SpringBoot |
---|
SpringBoot简介
Java开发发展史
SpringBoot和Spring关系
SpringBoot快速入门
传统Maven 构建SpringBoot
==Spring构建方式构建SpringBoot[IDEA工具提供了相关的构建方式]==
SpringBoot原理分析
依赖关系管理-Java的引用非常少
自动配置-自动加载对象实例
SpringBoot配置文件使用
SpringBoot配置文件[==application.properties/application.yml==]
SpringBoot配置文件数据加载/解析
热部署插件
SpringBoot与其他框架集成
==MyBatis==
==JPA==
==SpringData Redis==
==定时任务==
SpringBoot单元测试
SpringBoot程序打包 jar/war web->jar
理解SpringBoot
1.2.1 java的开发方式
农耕时代java开发:
工业时代java开发:
现代化java开发:
各种微服务齐活:服务注册与发现、负载均衡与熔断、网关等
各种组件一起上:springboot、springcloud...
1.2.2 SpringBoot简介
1.2.2.1 spring开发经历的阶段
Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的。
第一阶段:xml配置:在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和配置文件之间进行切换
第二阶段:注解配置:在Spring 2.x 时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(例如@Component、@Service),大大减少了配置量。
第三阶段:java配置管理 :Annotation的出现是为了简化Spring的XML配置文件,但Annotation不如XML强大,所以无法完全取代XMl文件 。例如:@Configuration、@Import等。
所有这些配置都代表了开发时间的损耗。 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。除此之外,项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。
Spring Boot 让这一切成为了过去。
起步依赖:本质是Maven项目对象模型中的标签。它定义其SpringBoot对他库的传递依赖,依赖加在一起即可支持某项功能。最厉害的就是这个,使得SpringBoot具备了构建一切的能力:整合所有牛×框架
自动配置:基于约定优于配置思想,配置基本都可以走默认值。配置基本都是SpringBoot自动完成
1.2.2.2 springboot简介
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是==用来简化新 Spring 应用的初始搭建以及开发过程==。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring Boot 简化了基于Spring的应用开发,只需要“run”就能创建一个独立的、生产级别的==Spring应用==。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。多数Spring Boot应用只需要很少(额外)的Spring配置。我们可以使用SpringBoot创建java应用,并使用java –jar 启动它,或者采用传统的war部署方式-jar。
我的理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。SpringBoot不是对Spring功能的增强,而是提供一种快速使用Spring的开发方式(全新的开发方式)。
SpringBoot并不是一个新的开发语言
Spring Boot 简化了基于Spring的应用开发
SpringBoot简化了配置
能很容易整合很多第三方优秀框架
什么是SpringBoot/SpringBoot的特点
SpringBoot并不是一个新的开发语言,SpringBoot简化了Spring的应用开发,降低了Spring的学习和使用门槛,SpringBoot简化了Spring的配置,并且很容易整合第三方优秀的框架。
搭建SpringBoot环境
完成:开发一个web应用并完成字符串“hello springboot”在浏览器显示
2.2.1 springmvc实现简单回顾
实现步骤:
创建maven工程
导入相关依赖的jar包(例如:spring-web、spring-webmvc等)
编写web.xml文件
编写springmvc核心配置文件
编写XxxController
2.2.2 SpringBoot实现
2.2.2.1 方式一
(1)创建maven工程
创建一个maven工程(建议:java工程,也可以是web工程),无需勾选maven骨架
1、添加起步依赖(依赖一个父工程)
依赖如下:
org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE org.springframework.boot spring-boot-starter-web
(2)工程jar依赖情况
此时我们可以发现工程自动引入了很多包,其中还包含tomcat包。
(3)引导程序
该程序是发布springboot应用的入口(只需要run一下)
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { // 只需要run一下,就能发布一个springboot应用 // 相当于之前将web工程发布到tomcat服务器,只是在springboot中集成了tomcat插件 SpringApplication.run(DemoApplication.class,args); } }
(4) 编写HelloController
在工程的src目录下创建com.xxx.controller.HelloController
。
@RestController public class HelloController { /** * 请求 /hello 输出hello springboot! * @return */ @RequestMapping(value = "/hello") public String hello(){ return "hello springboot!"; } }
(5) 测试
在DemoApplication里运行主方法,控制台数据如下图:
访问:http://localhost:8080/hello
2.3.2.2 方式二(建议)
(1)创建spring initializr工程
通过idea工具创建工程时,不再选择maven了而是选择spring initializr。然后去勾选相关依赖。
(2)编写HelloController
在工程的src目录下创建com.xxx.springbootdemo2.controller.HelloController
@RestController public class HelloController { /** * 请求 /hello 输出hello springboot! * @return */ @RequestMapping(value = "/hello") public String hello(){ return "hello springboot! demo2!"; } }
访问:http://locahost:8080/hello
搭建SpringBoot环境有2种方式
Maven工程直接导包(手动在pom.xml中引入依赖:1.父工程 2.web起步包)
Spring Initializr方式(勾选起步包,自动引入依赖,同时自动创建启动类)
使用SpringBoot,我们只用关注业务逻辑,而不用关注业务
启动SpringBoot工程:直接启动启动类的主方法即可(默认集成了tomcat:8080)