wordpress短消息,seo是什么地方,江苏省网站建设哪家好,龙华网站建设方案咨询一、什么是 SpringBoot#xff1f; Spring Boot 是 Spring 开源组织下的子项目#xff0c; 是 Spring 组件一站式解决方案#xff0c;主要是简化 了使用 Spring 的难度#xff0c;简省了繁重 xml 的配 置#xff0c;提供了各种启动器#xff0c;在运行过程中自定 配置, Spring Boot 是 Spring 开源组织下的子项目 是 Spring 组件一站式解决方案主要是简化 了使用 Spring 的难度简省了繁重 xml 的配 置提供了各种启动器在运行过程中自定 配置,开发者能快速上手 二、为什么要用 SpringBoot ① 独立运行 ② 简化配置 ③ 自动配置 ④ 无代码生成和 XML 配置 ⑤ 无需部署 war 文件 三、Spring Boot 的核心配置文件有哪几个它们的区别是什么 Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件 1. application 配置文件 主要用于 Spring Boot 项目的自动化配置 2. bootstrap 配置文件
有以下几个应用场景 ① 使用 SpringCloudConfig 配置中心时 这时需要在 bootstrap 配置文件中添加 连接到配置中心的配置属性来加载外部 配置中心的配置信息 ② 一些固定的不能被覆盖的属性 ③ 一些加密/解密的场景 四、SpringBoot 的配置文件有哪几种格式它们有什么区别 .properties 和 .yml它们的区别主要是书 写格式不同 1. .properties
app.user.name javastack
2. .yml
app:user:name: javastack 另外.yml 格式不支持 PropertySource 注解导入配置 五、SpringBoot 的核心注解是哪个它主要由哪几个注解组成的 启动类上面的注解是 SpringBootApplication 它也是 SpringBoot 的核心注解 主要组合包含了以下 3 个注解 ① SpringBootConfiguration组合了 Configuration 注解实现配置文件 的功能② EnableAutoConfiguration打开自 动配置的功能也可以关闭某个自动配 置的选项如关闭数据源自动配置功能 SpringBootApplication(exclude { DataSourceAutoConfiguration.class })③ ComponentScanSpring 组件扫描 六、开启SpringBoot特性有哪几种方式 ① 继承 spring-boot-starter-parent 项目 ② 导入 spring-boot-dependencies 项目依 赖 七、SpringBoot 需要独立的容器运行吗 可以不需要内置了 Tomcat/ Jetty 等容器 八、运行 SpringBoot 有哪几种方式 ① 打包用命令或者放到容器中运行 ② 用 Maven/ Gradle 插件运行 ③ 直接执行 main 方法运行 九、SpringBoot 自动配置原理是什么 注解 EnableAutoConfiguration, ConfigurationConditionalOnClass 就是自动配置的核心首先它得是一个配 置文件其次根据类路径下是否有这个类 去自动配置 Spring Boot 的自动配置注解是 EnableAutoConfiguration 从上面的 Import 的类可以找到下面自动加载自动 配置的映射 org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(Class?, ClassLoader)
public static ListString loadFactoryNames(Class? factoryClass,
ClassLoader classLoader) {String factoryClassName factoryClass.getName();try {EnumerationURL urls (classLoader ! null ?
classLoader.getResources(FACTORIES_RESOURCE_LOCATION) :
lassLoader.getSystemResources(FACTORIES_RESOURCE_LOCATION));ListString result new ArrayListString();while (urls.hasMoreElements()) {URL url urls.nextElement();Properties properties PropertiesLoaderUtils.loadProperties(
new UrlResource(url));String factoryClassNames properties.getProperty(factoryClassName);result.addAll(Arrays.asList(StringUtils.commaDelimitedListToStringArray(
factoryClassNames)));}return result;}catch (IOException ex) {throw new IllegalArgumentException(Unable to load [ factoryClass.getName() ] factories from location [ FACTORIES_RESOURCE_LOCATION ], ex);}
}
这个方法会加载类路径及所有jar包下META-INF/spring.factories配置中映射的自动配置的类。
/**
* The location to look for factories.
* pCan be present in multiple JAR files.
*/
public static final String FACTORIES_RESOURCE_LOCATION META-INF/spring.factories;
查看Spring Boot自带的自动配置的包 spring-boot-autoconfigure-1.5.6.RELEASE.jar
打开其中的META-INF/spring.factories文件会找到自动配置的映射org.springframework.boot.autoconfigure.EnableAutoConfiguration\
org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,\
org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\
org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\
org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration,\
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration,\
org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration,\
org.springframework.boot.autoconfigure.cloud.CloudAutoConfiguration,\
...
再来看看数据源自动配置的实现注解
Configuration
ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class })
EnableConfigurationProperties(DataSourceProperties.class)
Import({ Registrar.class, DataSourcePoolMetadataProvidersConfiguration.class })
public class DataSourceAutoConfiguration {
...
Configuration,ConditionalOnClass就是自动配置的核心首先它得是一个配置文件其次根据类十、如何理解 SpringBoot 中的 Starters Starters 可以理解为启动器它包含了一 系列可以集成到应用里面的依赖包你可 以一站式集成 Spring 及其他技术而不 需要到处找示例代码和依赖包 如果想使用 Spring JPA 访问数据库只 要加入 spring-boot-starter-data-jpa 启动 器依赖就能使用了