SpringBoot是Spring开源下的子项目,是Spring组件的一站式解决方案,简化了使用Spring的开发难度和配置。它的设计目的是简化新Spring应用程序的初始构造和开发过程。框架以特定的方式配置,因此开发人员不再需要定义模板化的配置。SpringBoot是一个为框架服务的框架。-优点:没有主流开发框架的配置集成,项目可以独立运行,不需要外部依赖Servlet容器。提供运行
SpringBoot是Spring开源下的子项目,是Spring组件的一站式解决方案,简化了使用Spring的开发难度和配置。它的设计目的是简化新Spring应用程序的初始构造和开发过程。框架以特定的方式配置,因此开发人员不再需要定义模板化的配置。Spring Boot是一个为框架服务的框架。
-优点:没有主流开发框架的配置集成,项目可以独立运行,不需要外部依赖Servlet容器。提供运行时应用程序监控和控制。大大提高了开发和部署的效率。与云计算的自然集成。
-缺点:版本迭代速度快,模块变化大,报错时定位困难。
春天MVC和Spring Boot都属于春天。
Spring MVC是一个基于Spring的Servlet)MVC框架,它提供了一种轻耦合的方式来开发web应用程序。它是Spring的一个模块,也是一个web框架。通过DispatcherServlet、ModelAndView、View Resolver可以轻松开发web应用;
Spring使用DI依赖注入技术实现ioc,为依赖注入提供容器,使用动态代理技术实现aop,解决了面向方面编程的问题。
SpringBoot是一套基于Spring的快速开发集成包。Spring Boot实现了自动配置,降低了项目建设的复杂度。主要是为了解决使用Spring框架需要大量配置的问题,所以并不是用来替代Spring的解决方案,而是一个与Spring框架紧密结合的工具,提升Spring开发者体验。同时集成了大量常用的第三方库配置(如杰克森、JDBC、Mongo、Redis、Mail等。),而且这些第三方库几乎可以在Spring Boot应用程序中进行开箱即用的配置。
-@Configuration:用于表示当前类是配置类。该功能与bean和XML相同
-@Bean:用于将当前方法的返回值作为Bean对象存储在Spring的IOC容器中。
-@ComponentScan:用于Spring在创建容器时将扫描的包。
-@PropertySource:用于指定属性文件的位置。
-@Value:用于将常量、配置文件中的值以及其他bean的属性值注入变量中,作为变量的初始值。
YML是一种高度可读的格式,用于表示数据序列化,这与XML相同。这种语言侧重于数据,而不是标记语言。
它通常用于配置文件。
YAML的文件更有条理,不那么混乱。可以看出,YAML具有分层的配置数据。
语法格式:1。区分大小写2。缩进用来表示层级关系3。缩进时不允许使用Tab键,只允许使用空格。
启动类上的标注是@SpringBootApplication,这也是SpringBoot的核心标注。
主组合包含以下三个音符:
@SpringBootConfiguration:结合@Configuration注释实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置功能,或者关闭某个自动配置选项,比如关闭数据源自动配置功能:
@ componentscan: spring组件扫描。
1.@PropertySource+@Value:使用@Value批注读取properties和yml的值。
2.@ property source+@ configuration properties:注意:需要在startup类中添加一个Note @ EnableConfigurationProperties。
装载顺序:
首先加载bootstrap . yml(bootstrap . properties)。
加载application . yml(application . properties)后。
应用场景:
1.使用Spring Cloud Config配置中心时,需要在bootstrap配置文件中添加连接到配置中心的配置属性,以加载外部配置中心的配置信息。
2.一些无法覆盖的固定属性。
3.一些加密/解密场景;
差异:
Bootstrap.yml可以理解为系统层面的一些参数配置,一般不会改变。
应用程序配置文件可用于定义应用程序级别,主要用于Spring Boot项目的自动配置。
在同一个目录下,如果有相同的application.properties和application.yml文件,则首先引用属性文件。同时,属性的优先级以第一个声明为准。以后不会有覆盖。
Spring-boot-maven-plugin是一个插件,它将spring boot的应用程序打包到一个jar中,所有应用程序都应该使用这个jar
包含了启动操作所需的所有jar,逻辑上将具备独立操作的条件。
运行Java-jarxxx.jar。
-用命令打包它或在容器Docker中运行它。
-使用Maven/ Gradle插件运行。
-直接运行main方法。
为异常捕获自定义一个类,在类的顶部用@RestControllerAdvice进行注释,然后定义捕获指定异常的方法,用@ExceptionHandler进行注释,用value属性指定要捕获的异常的类型,或者在方法的参数上指定异常的类型。
在实际开发中,我们需要重启应用服务器来修改某个代码的逻辑函数或者页面,无形中降低了开发效率。热部署是指当我们修改代码时,服务可以自动重启并加载新修改的内容,大大提高了我们开发的效率:SpringBoot官方提供了热部署功能:
<!-热部署-->
<依赖性>
< groupId > org . spring framework . boot </groupId >
< artifact id > spring-boot-dev tools </artifact id >
<可选>真</可选>
</依赖关系>
annotation @ sptingbootapapplication是一个暴露给用户的入口,它的底层其实是通过annotation @ enable auto configuration来实现的。
I .集成(启动)相关组件
jar包命名规范包括:spring-boot-starter。
第二,SpringBoot会采用SPI机制。,根据协议扫描出/META-INF/目录下的文件spring.factories(可以通过解析键值获得所有依赖的配置类,然后按照顺序添加到spring容器中来完成)。然后SpringBoot会根据协议自动使用SpringFactoriesLoader加载配置文件的内容。
第三,Spring获取第三方jar中的配置后,会调用ImportSelector接口完成动态加载。@Configuration的配置类必须包含在组件中的类之上,声明为Bean注释,然后将方法的返回值或属性注入IOC容器,即完成自动集成配置。
春季SPI
SPI(Service Provider Interface)服务提供了一个接口,简单来说就是用来解耦,实现自由插拔。
指定了Spring的SPI文件,需要放在项目的META-INF下,文件名必须是spring.factories。
Spring SPI使用SpringFactoriesLoader来加载spring.factories文件。SpringFactoriesLoader不仅可以加载声明的类对象,还可以直接取出预定义的完全限定名。
通过类加载器获取类路径下的factors _ resource _ location,以属性的方式解析配置文件,配置文件的键是声明的类型,值是具体实现的列表,最后将结果添加到缓存中,缓存的键是类加载器,值是配置文件的内容;
赠送20本心理学电子书,添加 微信:56163509 备注:心理学!
如若转载,请注明出处:https://www.xinli1988.com/50648.html