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才能使其生效  

            在Springboot中对其进行了简化处理,只需要配置一个类型为java.util.concurrent.TaskExecutor或其子类的bean,并在配置类或直接在程序入口类上声明注解@EnableAsync。
            调用在由Spring管理的对象的方法上标注注解@Async,显式调用即可生效。
11、@ControllerAdvice 全局捕获异常:把整个站点全部拦截,然后跳转到对应的页面 
            在全局捕获异常的类上加@ControllerAdvice
            方法上加@ExceptionHandler(RuntimeException.class)
            如果需要返回Json格式加@ResponseBody注解即可


Spring热部署:
        无需手动重启,Spring Boot应用自动重启
        使用的是devtools 原理为:使用了两个ClassLoder 一个classLoader加载那些不会改变的类(第三方Jar包) 另一个ClassLoader加载会更改的类,称为restart ClassLoader, 这样在有代码更改的时候 由于加载的类相比较少,所以事先了较快的重启项目


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多篇博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值