
一、简介SpringBoot它基于Spring4.0设计是由Pivotal公司提供的框架。SpringBoot纯注解的方式进行开发。Spring发展史Rod Johnson 2003 Interface Spring。2004 开源 Spring Source2008年收购Tomcat Aatch Servlet 整个生态掌握自己手里2009 Spring VMware 4.6亿美金 收购了先后收购RabbitMq、redisVmware EMC 通用电器 合资成立 Pivotal2014年 Spring Boot2015年 Spring Cloud微服务2018年 敲钟上市2014年4月发布Spring Boot1.0 Spring4.0 2018年3月Spring Boot2.0Spring5.0发布SpringBoot基于Spring开发不仅继承了Spring框架拥有的优秀特性它并不是用来代替Spring的解决方案而和Spring框架紧密结合进一步简化了Spring应用的整个搭建和开发过程。其设计目的是用来简化Spring应用的初始搭建以及开发过程。就是通过提供默认配置等方式让我们更容易使用。约定大于配置 开箱即用大部分的spring boot应用都只需要非常少量的配置代码开发者能够更加专注于业务逻辑另外SpringBoot通过集成大量的框架使得依赖包的版本冲突以及引用的不稳定性等问题得到了很好的解决。简化Spring应用开发的一个框架对整个企业级开发技术栈的一个大整合build anythingJ2EE开发的一站式解决方式。优点快速构建一个独立的Spring应用程序嵌入的Tomcat、Jetty或者Undertow无需部署WAR文件只需将项目打包成一个jar包java-jar 可以直接部署一个项目上线。提供starter POMs来简化Maven配置和减少版本冲突所带来的问题对Spring和第三方库提供给默认配置也可以修改默认值简化框架配置提供生产就绪功能如指标、健康检查和外部部署无需配置XML---javaConfig无代码生成开箱即用。二、Why SpringBootSpringBoot简化了基于Spring开发这只是最直观的一方面还有一个方面更得力于各微服务组件的支持这也是谈SpringBoot必谈微服务的原因。起初是Netflix移植到Spring也可以说是Spring Cloud带动了SpringBootSpringBoot成就了SpringCloud。SpringBoot和微服务的火热程度是同步的。单体应用就是大名鼎鼎的 all in one 的风格。这种风格把所有的东西都写在一个应用里面比如我们熟悉的OA、CRM、ERP系统。所有的页面、所有的代码都放在一起打成一个war包然后把war包放在Tomcat容器中运行。容易牵一发而动全身。一个微服务架构把每个功能元素放进一个独立的服务中并且通过跨服务器分发这些服务进行扩展只在需要时才复制。三、快速开始 SpringBoot Hello World前置知识要求 spring.ioSSM框架的使用经验熟练使用Maven进行项目构建和依赖管理熟练使用ideaResponseBody注解将控制器Controller方法返回的Java对象自动转换成JSON/XML等格式并直接写入HTTP响应体Response Body中而不是跳转到一个视图JSP/Thymeleaf页面。JSON:JavaScript Object Notation符号(JavaScript对象表示法)。“轻量级的数据交换格式”一种通用的“数据快递盒”。json的数据结构主要有两种形态并且这两种形态可以互相嵌套形态一对象用{}花括号包裹---相当于Java里的Map或User对象{ name: 张三, age: 18, isStudent: false }形态二数组用[]方括号包裹---相当于Java里的List[ 苹果, 香蕉, 橘子 ]最常用的复杂结构对象里面套数组数组里套对象{ code: 200, message: 查询成功, data: [ {id: 1, name: Alice}, {id: 2, name: Bob} ] }项目打包部署将项目打包成jar包 jar包里面套jar包---Fat Jar版本依赖启动类四、自定义SpringApplicationSpring的三大核心机制1.IoC控制反转对象不由你创建由Spring管。解耦降低代码之间的依赖。2.DI依赖注入依赖不由你组装由Spring塞。自动装配省去手动new的麻烦3.AOP面向切面编程横切逻辑不用你写由Spring插。抽离通用功能日志、事务等Spring中的Bean在Spring框架中Bean就是由Spring IoC容器所管理、实例化、组装和配置的对象。它是构成应用程序主干的“零件”理解Bean是使用Spring框架的基石。Bean就是由Spring容器来创建和管理的Java对象。你不需要自己newSpring会帮你做好一切。Service // 告诉Spring把这个类变成一个Bean public class UserService { Autowired // 告诉Spring帮我把这个依赖塞进来 private UserDao userDao; }实例化自定义