1.springboot优点:
①.创建独立的spring应用;
②.内嵌web服务器;
③.自动starter依赖,简化构建配置;
④自动配置spring及第三方功能;
⑤.提供生产级别的监控,健康检查及外部化配置;
⑥.无代码生成,无需编写XML;
2.微服务
微服务是一种架构风格;
一个应用拆分成一组小型服务;
每个服务运行在自己的进程内,也就是可以独立部署和升级;
服务之间使用轻量级HTTP交互;
服务围绕业务功能拆分;
可以由全自动部署机制独立部署;
去中心化,服务自治,服务可以使用不同的语言,不同的存储技术;
分布式的困难:远程调用、服务发现、负载均衡、服务容器、配置管理、服务监控、链路追踪、任务调度、日志管理…
云原生的困难:服务自愈、弹性伸缩、服务隔离、自动化部署、灰度发布、流量治理…
GA稳定版本 SNAPSHOT 快照版本
java8兼容14
创建springboot项目步骤
①创建maven工程
②引入依赖
③创建主程序
④编写业务
⑤测试
⑥简化配置
统一配置文件 application.properties或application.yml(yaml)
⑦简化部署
打包 clear package 然后在target中找到jar包
java -jar xxx.jar 启动jar包
控制台(cmd)记得取消快速编写模式
依赖管理
spring-boot-satrter-parent的父项目spring-booot-dependencies点进去之后会出现jar包的所有版本,自动版本仲裁机制;
修改版本需要在pom.xml文件中加上properties标签,里面加上需要的xx.version版本号就可以修改版本,不过有可能会出现冲突;
自创建starter不要以spring-boot-starter作为前缀.
自动配置
主方法run会返回ConfigurableApplicationContext,及IOC容器
run.getBeanDefinitionNames()就可以返回容器中的组件
springmvc的组件例如DispatchServlet、字符乱码拦截器、ViewResolve、multipartResolver(文件上传)等组件都有配置
默认的包扫描
只要在主程序所在包及其子包都会被扫描进去,也就是说,如果你在SpringBootApplication主方法之外的包写了bean,就需要手动导入,不可用注解@ComponentScan来进行扫描,因为@SpringBootApplication注解中使用过了,如果还是想这样实现,将SpringBootApplicationd等同的注解复制即可
使用@SpringBootApplication注解的scanBasePackages更方便
各配置默认值
默认配置最终都是映射到MultipartProperties
配置文件的值最终都会绑定到每个类上,这个类会在容器中创建对象
@configurationProperties上面的prefix属性就是前缀,可在application.properties文件中使用前缀.属性修改值。
按需加载配置
所有自动配置功能都是从spring-boot-autoconfigure包中管理的
XXXConfiguration
就是@condition注解来进行配置