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配合完成统一异常拦截处理
相关推荐
学长毕设26 分钟前
基于SpringBoot的景点管理系统-附源码
java·spring boot·后端
sxlishaobin1 小时前
Maven Setting详解
java·学习·maven
知守观1 小时前
一个方法两个触发口:反编译 XXL-Job 后,我看清了 inner/job 子包的裸奔现状
java·spring boot·微服务
用户3126874877201 小时前
CompletableFuture 链式编排:异步编程的优雅解法
java
瑞雪兆丰年兮2 小时前
JavaWeb-day14-SpringBootWeb原理篇
java·开发语言·spring boot·spring·bean·mybatis·javaweb
神仙别闹2 小时前
基于 Java GUI 贪心策略直接搜索算法和极大极小博弈树算法的智能人机博弈五子棋游戏
java·毕业设计·gui·贪心策略·极大极小博弈树
Flynn Liang3 小时前
RAG 评估体系:黄金集、检索指标与 LLM-as-Judge 落地
java·langchain·rag·评估·langchain4j·检索指标
SimonKing4 小时前
Workbuddy太占C盘空间了,写个迁移工具迁走10G的数据
java·后端·程序员
Hvitur5 小时前
Java - Lambda
java·开发语言·python