本文介绍: 约定大于配置简化Spring开发,spring boot致力于简洁,让开发者写更少的配置程序能够更快的运行启动。它是下一代javaweb框架,并且它是spring cloud(微服务)的基础。devops:开发者,运维者。springboot特点:优点面试重点1)为基于Spring开发提供更快的入门体验2)开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求3)提供了一些大型项目常见的非功能特性,如嵌入式服务器安全指标健康检测外部配置等。

约定大于配置

简化Spring开发,
spring boot致力于简洁,让开发者写更少的配置,程序能够更快的运行启动。它是下一代javaweb框架,并且它是spring cloud(微服务)的基础。devops:开发者,运维者。

springboot特点:优点面试重点
1)为基于Spring的开发提供更快的入门体验
2)开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
3)提供了一些大型项目常见的非功能特性,如嵌入式服务器安全指标健康检测外部配置等
4) SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

 Springboot核心功能:
起步依赖简化依赖配置)
起步依赖本质上是一个Maven项目对象模型(Project object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能简单的说,起步依赖就是将具备某种功能坐标打包到一起,并提供一些默认的功能。
自动配置(简化常用工程相关配置)
Spring Boot自动配置是一个运行时(更准确地说,是应用程序启动时)的过程考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
辅助功能(内置服务器,…..)
除了上面的功能,其实SpringBoot程序还有其他的一些优势,比如我们没有配置Tomcat服务器,但是能正常运行,这是SpringBoot入门程序一个可以感知到的功能,
也是SpringBoot的辅助功能之一。—个辅助功能都能做的这么6,太牛了。

所有的版本springboot官方文档: https://docs.spring.io/springboot/docs/

SpringBoot入门程序

1.使用maven(无网也可以,但是项目结构多一点 启动配置文件需要手动创建)

3.使用Spring initializr创建

生成项目的JVM

依赖选择

springweb/lombok

 

阿里仓库缺失!!!!!!!!!!

你不需要tomcat启动程序

使用maven搭建springboot项目

maven -> 添加springboot项目 

2.添加相关依赖: webstarter
springboot官方starter命名规范:springbootstarter名字
比如webstarter: spring-bootstarterweb

添加springbootmavenplugin

指定jdk版本

<properties>

        <java.version>1.8</version>

</properties>

程序的入口,包含一个main方法,一般放在父包下,其他类位于子包

Spring容器对象 :ApplicationContext

src/main/resources目录创建一个application.properties/application.yml springboot主配置文件src/main/resources目录创建一个static目录static目录存放静态资源,该static目录下的资源可以通过浏览器直接访问
src/main/resources目录创建一个templates目录,templates目录存放动态资源,该templates目录下的资源无法通过浏览器直接访问,只能通过处理器转发方式,类似WEB-INF目录下的资源**

如果是前后台分离项目,static,templates不需要创建

单体映射建议使用这种方式创建springboot项目(就一个模块进行开发)

但是多模块maven开发建议使用第一种方式

原理

父项目:spring-boot-starterparent,打包方式: pom

子项目pom文件继承父项目pom文件的配置

springboot版本制定了,其他技术版本也会统一确定

使用parent可以帮助开发者进行依赖版本统一管理(真正做的是父项目的父项目)

在多模块开发中,假如其中的模块

xxxparent

xxxcommon

xxxuser

xxxorder

xxxweb(基于springBoot开发)

缺点:xxox-parent所有的子模块都基于springboot开发

把springboot

版本控制拿过来  不用继承、直接导入

我们的项目继承父项目/导入

maven是依赖的传递

starter
starter定义了使用某种技术时对于依赖的固定搭配格式,也是一种最佳解决方案,使用starter可以帮助开发者减少依赖配置。

parent -> 不可以放,打包方式pom

starter -> 可以放一些公共代码打包方式jar

starter与parent的区别
朦朦胧胧中感觉starter与parent好像都是帮助我们简化配置的,但是功能又不一样,梳理一下。starter是一个坐标中定了若干个坐标,以前写多个的,现在写一个,是用来减少依赖配置的书写量的。
parent是定义了儿曰11依利中内减小休都冲突的。理,这样就不存在版本冲突了,是用来减少依赖冲突的。

starter优先使用starter

如果想覆盖版本,直接在依赖后面使用version覆盖,也可以使用Properties覆盖版本属性

启动类:

一个main方法为什么启动我们的项目了呢?

一个是我们核心注解

一个是我们运行方法run()

核心注解:

其实她是一个组合注解 

启动类也是一个配置类 主配置类

源码回退    A C <- 

EnableAutoConfiguration:开启自动配置

SpringBoot框架中,提供了很多场景下的配置类,100多个配置类,在程序启动的时候,按需加载

配置类,让这些配置类生效

导入注释(EnableAutoconfiguration.java interface)

指定那些类是配置类的选择器      -> selector

run方法

最终给我加在的配置只有这些(单例池)

为什么没有用到的类没有加载出来 怎么做到呢?  -> 条件注解

面试:

扫描所有依赖下的MeTA/INF下的包下的类  Enable

根据每一个类的con

配置上有个半年多conditioanl注解  有没有符合条件的类

所有的相关配置类从你添加的依赖中产生 ,为因果关系  没加以来 依赖 对应的配置类就不生效

原文地址:https://blog.csdn.net/weixin_53415999/article/details/134659120

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_29408.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注