Spring Boot认知
Posted 天堂里外
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot认知相关的知识,希望对你有一定的参考价值。
SpringBoot核心:
1、起步依赖
SpringBoot初始化时自带众多依赖,基本只通过spring-boot-starter-xxx的jar包就可以保证工程的运行和发布,减少了类似于配置Spring框架工程中需要填写的大量引用
2、自动配置
Spring中通过在xml中大量的bean类来进行相关实例的初始化及容器控制,在springboot中去除了xml的繁杂配置,通过properties或yml配置文件+注解的方式即可以启动和运行,甚至可以只使用@SpringBootApplication注解即可运行
3、CLI命令
Spring Boot CLI 是用于快速开发 Spring 应用的命令行工具。用来运行 Groovy
(与 Java 风格类似)脚本。
这里暂不学习 之后再研究一哈。
4、Actuator监控
主要值得就是spring-boot-starter-actuator模块中已经实现了一些原生端点,根据端点的作用,可以将原生端点分为三大类:
- 应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密切相关的配置类信息。
- 度量指标类:获取应用程序运行过程中用于监控的度量指标,比如内存信息、线程池信息、HTTP请求统计等。
- 操作控制类:提供了对应用的关闭等操作类功能。
可以理解为Springboot在运维领域已经为我们提供了很多有效的指标与信息 方便我们对此进行相关数据的监控与问题的定位
优点:
1、独立运行 使用java -jar xx.jar即可运行 cli命令也可以
2、简化配置 消除了大量xml配置
3、自动配置
4、无代码生产和xml配置,通过注解来实现
5、内嵌多种服务容器 tomcat(spring-boot-starter-web),Undertow,Jetty
6、方便、专一既是趋势 在云的概念上来说 未来的发展肯定是 在某一规则下各个公司精专某一方面 以此组成共同的数据中台,发展大数据
7、从销售的领域来说 一个产品可以由多个微服务共同组成,可以以此更容易向客户指定个性化产品 符合当前发展趋势
缺点:
1、入门容易精通难
2、以前是所有功能全部做到一个系统中,维护起来只需要维护这一套系统即可,现在一套系统包含了无数个微服务,每个微服务一个程序,维护工作大幅增加
核心注解:@SpringBootApplication 通过在main函数中 SpringApplication.run(引导类的字节码对象);即可运行
配置文件:
1、*.properties
2、*.yml
ps: yml格式不支持 @propertySource注解
main函数:主要启动SpringBoot框架,用于加载容器和Spring等默认组件
@SpringBootApplication 用户表示声明一个SpringBoot框架容器
主要组合包含了一下三个注解:
@SpringBootConfiguration: 组合了@Configurationz注解,实现配置文件的功能
@EnableAutoConfiguration 打开自动配置的功能,也可以关闭某个自动配置的选线,如关闭数据源自动配置功能 @SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
@Component Spring组件扫描
SpringBoot中常用注解:
1、引导类的@SpringBootApplication
2、@Controller 处理http请求
3、@RestController @Response和@Controller的组合
4、@RequestMapping配置url映射关系
5、@ConfigurationProperties(profix="配置文件中的key的前缀") 可以降配置文件中的配置自动与实例进行映射
6、@AutoWired
7、@Primary 多个Bean候选者是,被注解为@Primary的Bean将作为首选者
8、@Transactional:事务标注 方法报错 事务回滚
9、@EnableConfigurationProperties(value={DBConfig1.class,DBConfig2.class});
10、@Async:异步加载启动main方法上 需要加上@EnableAsync才能使其生效
@EnableAsync
。@Async
,显式调用即可生效。
ps 微服务之间是如何通讯的, Spring Cloud和Dubbo有哪些区别?
Spring Cloud 使用Rest和http方式
Dubbo使用RPC方式
https://www.jianshu.com/p/736acdcdfa9b
https://www.cnblogs.com/zhuyeshen/p/11730714.html
知乎 百度 csdn多篇博客
以上是关于Spring Boot认知的主要内容,如果未能解决你的问题,请参考以下文章
解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式
一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式