• springboot的简单理解


    1.简介
    SpringBoot是一个简化Spring开发的框架。采用约定大于配置的开发原则,去繁就简,能够快速的开发一个应用。在使用SpringBoot进行开发时只需要载入相应startert就可以用所有的Spring组件,其实springboot就是整合了很多优秀的框架,把原先框架所需的jar包依赖在springboot中换成了相应的启动器starter,此外不用我们自己手动的去写一堆xml配置,大多采用springboot的默认配置,当然可以修改默认配置。springboot就是集成了很多框架,然后帮我们默认配置了一些东西,我们可以拿来就用。极大的简化了配置。
    Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。

    2.优点

    3.单体应用与微服务
    单体应用是把所有的应用模块都写在一个应用中,导致项目越写越大,模块之间的耦合度也会越来越高,项目自然就变得越来越臃肿。微服务是一种架构风格,用微服务可以将应用的模块单独部署,对不同的模块进行不同的管理操作,不同的模块生成小型服务,每个功能元素最后都可以成为一个可以独立替换、独立升级的功能单元,各个小型服务之间通过http协议进行通信。

    4.springboot的核心特点

    1.微服务
    使用SpringBoot可以生成独立的微服务功能单元。

    2.自动配置
    针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置,即约定优于配置。

    3.起步依赖
    告诉Spring Boot需要什么功能,它就能引入需要的依赖库,即starter启动器。

    4.Actuator
    可以在生产环境中监控当前应用程序状态,例如程序的健康,虚拟机等信息,并且可以将这些监控信息通过前端以可视化的界面展示出来,以便实时掌握程序的运行情况。

    helloworld案例

    运行结果截图:

    解析:
    每一个springboot的运行都是从springboot的入口类开始执行的。

    @SpringBootApplication //启动注解 用来标注主程序类 说明这是是一个springboot应用
    @ComponentScan(basePackages = {"com.test.demo.controller"})
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
    }
    //注意:java代码必须和启动类在同一目录下
    

    启动类注解解析:

    1.程序从main方法开始运行
    2.使用SpringApplication.run()加载主程序类
    3.主程序需要标注@SpringBootApplication,表示这是一个springboot应用
    4.@EnableAutoConfiguration是springboot的核心注解,即自动配置,相关的自动配置都是由这个注解完成
    5.@Import({AutoConfigurationImportSelector.class}) 导入所有的自动配置场景
    6.@AutoConfigurationPackage定义默认的包扫描规则
    7.程序启动扫描加载主程序类所在的包以及下面所有子包的组件
    

    AutoConfigurationPackage:
    自动扫描@SpringBootApplication标记的主类,在主类所在包或者所在的子包下面找相应的控制类,然后根据相应的注解自动配置相应的项目所需的bean。

    其实springboot就是帮我们整合集成了很多框架,让我们的开发变得更加简单快速,其实核心还是ssm框架基础。

    参考博文:
    (1) https://baijiahao.baidu.com/s?id=1623648034778672046&wfr=spider&for=pc
    (2) https://www.cnblogs.com/nevermorewang/p/9053504.html (对springboot的理解)
    (3) https://www.zhihu.com/question/39483566 (知乎上对springboot的理解的讨论)

  • 相关阅读:
    写代码随想
    学生管理系统
    自定义栈
    位运算符加密
    自定义Vector
    二叉树排序
    双向循环链表
    双向链表
    加载properties文件
    通讯录
  • 原文地址:https://www.cnblogs.com/jasonboren/p/12263962.html
Copyright © 2020-2023  润新知