springboot相关知识集锦----1

一、springboot是什么?

springboot是一个用于构建基于spring框架的独立应用程序的框架。它采用自动配置的原则,以减少开发人员在搭建应用方面的时间和精力。同时提升系统的可维护性和可扩展性。

二、springboot的优点

约定优于配置
版本锁定:解决maven依赖版本容易冲突的问题,集合了常用的并且测试过的所有版本
起步依赖:解决了完成某一个功能要整合的jar包过多的问题,集合了常用的jar包
自动配置:解决了整合框架或者技术的配置文件过多,集合了所有的约定的默认配置
内置tomcat: 通过内置tomcat,无需再用其他外置的tomcat就可以直接运行javaEE程序
人们把springboot称为搭建程序的脚手架。其中最主要作用就是帮我们快速的构建庞大的spring项目,并且尽可能减少一切xml配置。

三、运行springboot项目的方式

1.可以打包
2.可以使用maven插件直接运行
3.直接运行main方法

四、springboot的启动器starter

1.starter启动器,可以通过启动器集成其他的技术,可以提供对应技术的开发和运行环境。
2.starter执行原理:
*springboot在启动时候会去扫描jar包中一个名为spring.factories
*根据文件中的配置,去加载自动配置类。配置文件格式是key = value,value中配置了很多需要spring加载的类
*spring会去加载这些自动配置类,spring读取后,就会创建这些类的对象,放到spring容器中,后期就会从spring容器中获取这些类的对象

五、springboot运行原理

1.springboot核心通过maven继承依赖关系快速整合第三方框架
2.基于springMVC无配置文件完全注解化实现springboot框架,main函数启动

六、springboot如何完成自动配置

1.springboot自动配置的注解是@enableautoconfiguration
2.我们使用的时候是在启动类上加@springbootapplication,这个注解是复合注解,内部包含@enableautoconfiguration
3.@enableautoconfiguration内部有一个@import,这个注解才是完成自动配置的关键
4.@import导入一个类,这个类内部提供了一个方法selectimport,这个方法会扫描导入的所有jar包下的spring.factories文件。解析文件中自动配置类key = value,将列表中的类创建,并放入spring容器中。

七、springboot常用注解

1.springbootapplication:它封装了核心的@springbootconfiguration+@enableautoconfiguration+@componentscan这三个大类,大大节省了程序员配置时间,这就是springboot的核心设计思想。
2.@enablescheduling是通过@import将spring调度框架相关的bean定义都加载到ioc容器中
3.@mapperscan:springboot支持mybatis组件的一个注解,通过此注解指定mybatis接口路径,即可完成对mybatis接口的扫描
4.@Restcontroller:@responsebody+@controller结合
5.@requestmapping:我们都需要明确请求的路径
6.@pathvariable:路径变量注解,用{}来定义url部分的变量名
7.@service:标记业务层的组件,业务逻辑处理都会加上这个注解交给spring容器
8.@component和spring注解功能一样,注入ioc容器中
9.@controlleradvice和@exceptionhandler配合完成统一异常拦截处理
相关推荐
IT小白杨5 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡5 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖6 小时前
Java深入解析篇九之NIO详解
java·网络·nio
The Chosen One9856 小时前
高进度算法模板速记(待完善)
java·前端·算法
极光代码工作室8 小时前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen9 小时前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言
名字还没想好☜9 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫10 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v
caishenzhibiao10 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
史呆芬10 小时前
分布式事务实战:微服务跨服务数据一致性解决方案
java·后端·spring cloud