本篇内容介绍了“SpringBoot自动配置特点与原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、常量数据等。在Spring框架这个大家族中,产生了很多衍生框架,比如 Spring、SpringMvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如 引用对象、常量数据等。可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行。内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。SpringBoot最明显的特点是,让文件配置变的相当简单、让应用部署变的简单(SpringBoot内置服务器,并装备启动类代码),可以快速开启一个Web容器进行开发。Spring Boot的启动类上有一个@SpringBootApplication注解,这个注解是Spring Boot项目必不可少的注解。作用:SpringBoot的核心注解,标注在某个类上说明这个类是SpringBoot的主配置类 , SpringBoot就应该运行这个类的main方法来启动SpringBoot应用它的本质是一个组合注解,我们点进去查看该类的元信息主要包含3个注解:作用:SpringBoot的配置类 ,标注在某个类上 , 表示这是一个SpringBoot的配置类;我们继续进去这个注解查看源码:@Configuration标注在某个类上,表示这是一个 springboot的配置类。可以向容器中注入组件。作用:开启自动配置功能以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉SpringBoot开启自动配置功能;这样自动配置才能生效;点进注解接续查看:@AutoConfigurationPackage:自动配置包@Import({AutoConfigurationImportSelector.class}):Spring底层注解@import , 给容器中导入一个组件,导入的组件由AutoConfigurationPackages.Registrar.class这个类来指定①利用getAutoConfigurationEntry(annotationMetadata);给容器中批量导入一些组件;②调用List configurations = getCandidateConfigurations(annotationMetadata, attributes)获取到所有需要导入到容器中的配置类;③利用工厂加载 Map> loadSpringFactories(@Nullable ClassLoader classLoader);得到所有的组件;④从META-INF/spring.factories位置来加载一个文件。默认扫描我们当前系统里面所有META-INF/spring.factories位置的文件。作用:自动扫描组件,默认扫描该类所在包及其子包下所有带有指定注解的类,将它们自动装配到bean容器中,会被自动装配的注解包括@Controller、@Service、@Component、@Repository等。也可以指定扫描路径。简单来说,Spring Boot通过@EnableAutoConfiguration注解开启自动配置,对jar包下的spring.factories文件进行扫描,这个文件中包含了可以进行自动配置的类,当满足@Condition注解指定的条件时,便在依赖的支持下进行实例化,注册到Spring容器中。在加载自动配置类的时候,并不是将spring.factories的配置全部加载进来,而是通过@Conditional等注解的判断进行动态加载;@Conditional其实是s免费云主机域名pring底层注解,意思就是根据不同的条件,来进行自己不同的条件判断,如果满足指定的条件,那么配置类里边的配置才会生效;常用的Conditional注解:@ConditionalOnClass : classpath中存在该类时起效@ConditionalOnMissingClass : classpath中不存在该类时起效@ConditionalOnBean : DI容器中存在该类型Bean时起效@ConditionalOnMissingBean : DI容器中不存在该类型Bean时起效@ConditionalOnSingleCandidate : DI容器中该类型Bean只有一个或@Primary的只有一个时起效@ConditionalOnExpression : SpEL表达式结果为true时@ConditionalOnProperty : 参数设置或者值一致时起效@ConditionalOnResource : 指定的文件存在时起效@ConditionalOnJndi : 指定的JNDI存在时起效@ConditionalOnJava : 指定的Java版本存在时起效@ConditionalOnWebApplication : Web应用环境下起效@ConditionalOnNotWebApplication : 非Web应用环境下起效“SpringBoot自动配置特点与原理是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!
相关推荐: react-router-dom路由跳转如何实现
这篇“react-router-dom路由跳转如何实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“react-router-dom路由跳转如何…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。