Spring为了解决企业级应用开发的复杂性而创建,简化开发。
Spring如何简化开发?
1.基于POJO的轻量级和最小入侵性
2.通过IOC,依赖注入(DI)和面向接口实现松耦合。
3.基于切面(AOP)和管理进行声明式编程。
4.通过切面和模板(template)减少样式代码
什么是SpringBoot?
http://xxxx.do风格最开始属于Struts2框架的遗留风格。
可能的新服务架构:【服务网格】
约定大于配置
java企业级应用->J2EE->spring->springBoot的过程。
maven整合jar包,springboot整合所有框架。
springBoot的优点
1.为所有Spring开发者更快的入门,创建独立Spring应用
2.开箱即用,提供各种默认配置来简化项目配置,自动starter依赖,简化构建配置
3.内嵌式容器简化Web项目
4.没有冗余代码生成和XML配置的要求
5.自动配置Spring以及第三方功能
6.提供生产级别的监控、健康检查以及外部化配置
程序=数据结构 + 算法(程序员)
程序=面向对象 + 框架(码农)
微服务
什么是微服务
微服务是一种架构风格。当一个业务或者模块:service比如userService随着业务扩大,一台电脑放不下时,就需要独立出一个模块放到单独的电脑中。将业务拆分成模块。把独立出来的功能元素的动态组合。
高内聚、低耦合。
SpringBoot build anything。
SpringCloud coordinate anything
SpringCloud Data Flow connect anything
通信方式:http、rpc
微服务缺点
1.远程调用
2.服务发现
3.负载均衡
4.服务容错
5.配置管理
6.服务监控
7.链路追踪
8.日志管理
9.任务调度
上云的困难
1.服务自愈
2.弹性伸缩
3.服务隔离
4.自动化部署
5.灰度发布
6.流量治理
第一个SpringBoot程序
官方:提供了一个快速生产的网站!IDEA集成了这个网站。
第一种在Spring官网快速开始。
其中GA表示最新版,SNAPSHOT表示快照版本,不推荐使用。
点击overview,以及页面尾部的Spring Initializr
其他的一些选项就按照正常流程走,其中要选择依赖。一般情况选择Spring Web即可,Tomcat等都会自动配置好。
点击生成,下载即可生成。
下载完解压导入IDEA即可。
第二种通过IDEA自动集成的创建SpringBoot项目。
创建新项目。
选择Spring Initializr,其中的默认网址就是springBoot创建项目的官网。
剩下的步骤其实官网的选择一致。选择对应的配置。
选择对应的依赖。
将多余的文件删掉,其实和普通的maven项目一样。
两种创建SpringBoot项目的方式更推荐第二种,直接通过IDEA创建。
hello world
其中DemoApplication是SpringBoot的主程序入口。
@SpringBootApplictin注解:代表声明这个类时主程序类,程序的入口
DemoApplicationTests是SpringBoot的单元测试。
application.properties是SpringBoot的配置文件。
其中controller、dao、pojo、service这些层的包必须都在DemoApplication的同级目录下才能生效.
启动项目,在页面中输入配置好的地址就能够访问该方法。
真的要比SSM简化太多太多。
但是我发现在成熟的项目里有多个文件夹,只有其中一个具有appliction,记录当做问题疑惑。
正常开发中一般在类名前也会配置一个总路径,各个方法有不同的路径指向。
对于刚创建的pom.xml的各个解释
springboot简化部署
通过引入插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<plugin>
能够将springboot直接打为jar包,然后直接运行,运行服务器不需要再安装tomcat。
在自己的电脑上,CMD打开命令行窗口,进入到jar包所在的路径下,执行命令。
java -jar 目标jar包名.jar
即可运行