当前位置: 首页 > news >正文

为什么收不到自己网站2022年网络流行语

为什么收不到自己网站,2022年网络流行语,网站建设费用能否计入广告费,真人性做爰网站Spring Boot 自动配置原理 Spring Boot 的自动配置机制基于 条件化配置,通过 EnableAutoConfiguration 注解来启用。自动配置的核心原理是 基于类路径和环境条件来推断所需要的配置,Spring Boot 会根据项目中引入的依赖和当前环境来自动装配相关的配置项…

Spring Boot 自动配置原理

Spring Boot 的自动配置机制基于 条件化配置,通过 @EnableAutoConfiguration 注解来启用。自动配置的核心原理是 基于类路径和环境条件来推断所需要的配置,Spring Boot 会根据项目中引入的依赖和当前环境来自动装配相关的配置项,而不需要开发者手动配置。

自动配置原理简述
  1. @EnableAutoConfiguration:这个注解会触发 Spring Boot 的自动配置功能。它会让 Spring Boot 从 META-INF/spring.factories 文件中读取自动配置类,并根据当前项目的依赖来加载相关配置。
  2. 条件注解(@Conditional 系列注解):Spring Boot 会根据项目中存在的类、依赖、配置等条件,判断是否应用某些配置。例如:@ConditionalOnClass@ConditionalOnProperty 等注解,它们会根据类路径上的依赖和配置项来决定是否加载某些配置。
  3. spring.factories 文件:Spring Boot 使用 spring.factories 文件来定义自动配置类,通常在 META-INF/spring.factories 目录下。这个文件包含了需要自动配置的类,当 Spring Boot 启动时,会读取这些配置类并应用。

Spring Boot 自动配置的示例

假设你使用的是 Spring Boot Web Starter,在你的项目中引入了 spring-boot-starter-web 依赖时,Spring Boot 会自动配置一个嵌入式的 Tomcat 服务器以及相关的 Web 配置。

示例:自动配置 DataSource 连接池

假设你引入了 mybatis-spring-boot-starter 依赖,Spring Boot 会自动配置 DataSource 连接池、mybatis配置等。你无需手动配置 DataSource,Spring Boot 会根据 加载yml中的数据库连接配置,可以初始化连接数据库。

示例代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.hk.mapper")
@SpringBootApplication
public class MyApplication {public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}
}

在这个例子中,@SpringBootApplication 会自动启用 @EnableAutoConfiguration 注解,Spring Boot 会根据类路径中是否存在 mybatis-spring-boot-starter 或数据库驱动来自动配置数据源和 创建Mapper代理对象添加到IOC容器中。

自定义自动配置案例

Spring Boot 允许开发者创建自己的自动配置类,满足项目特定需求。

1. 创建一个自定义的自动配置类

假设我们希望在应用启动时自动配置一个自定义的 MyService,并通过 @ConfigurationProperties 来配置其属性。

步骤:

  1. 创建自动配置类:自定义自动配置类,负责提供具体的配置逻辑。
  2. 使用 @Conditional 注解:使用条件注解来判断是否自动配置。
  3. 创建 spring.factories 文件:将自动配置类注册到 spring.factories 文件中。

示例代码:

1. 创建自定义的 MyService
@Data
public class MyService {private String msg= "Hello, World!";
}
2. 创建自动配置类
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
@ConditionalOnProperty(name = "my.enabled",havingValue = "true")
public class MyServiceServiceAutoConfiguration {@Beanpublic MyService myService() {return new MyService();}
}

这里,我们通过 @ConditionalOnProperty 注解来确保 MyService 仅在 my.enabled 属性为 true 时才被加载。如果没有配置该属性,则默认启用。

3. 创建 spring.factories 文件

src/main/resources/META-INF/spring.factories 目录下,创建一个 spring.factories 文件,注册自动配置类。

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.hk.MyServiceServiceAutoConfiguration
4. 使用自定义的自动配置

application.properties 中,你可以通过配置 my.enabled 来控制是否启用自动配置的 MyService

my.enabled=true
my.message=Hello, Custom World!
5. 在应用中使用 MyService
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class MyApplication implements CommandLineRunner {@Autowiredprivate MyService myService;public static void main(String[] args) {SpringApplication.run(MyApplication.class, args);}@Overridepublic void run(String... args) {System.out.println(myService.getMsg());}
}
6. 启动并测试

启动应用时,如果 application.properties 中的 my.enabled 设置为 true,则会自动创建并注入 MyService 实例,否则不会创建 MyService

总结

  • Spring Boot 的自动配置机制依赖于 @EnableAutoConfiguration 和一系列的条件注解(如 @ConditionalOnClass@ConditionalOnProperty 等),它根据应用的类路径、环境条件以及配置文件来自动加载和配置必要的 Bean。
  • 开发者可以通过创建自定义的自动配置类、定义条件注解、配置 spring.factories 文件来扩展 Spring Boot 的自动配置功能。
  • 自定义自动配置可以通过条件化配置来控制何时启用特定的配置,增强了 Spring Boot 的灵活性和扩展性。

文章转载自:
http://noon.c7624.cn
http://laetare.c7624.cn
http://continuable.c7624.cn
http://amerika.c7624.cn
http://bacteriochlorophyll.c7624.cn
http://bollworm.c7624.cn
http://atman.c7624.cn
http://pongid.c7624.cn
http://unfaithfully.c7624.cn
http://mississippi.c7624.cn
http://wifeless.c7624.cn
http://cantabile.c7624.cn
http://hyponoia.c7624.cn
http://ovariotome.c7624.cn
http://autogeny.c7624.cn
http://basifixed.c7624.cn
http://aerate.c7624.cn
http://hyetology.c7624.cn
http://semispherical.c7624.cn
http://assignment.c7624.cn
http://boycott.c7624.cn
http://gaillard.c7624.cn
http://resettlement.c7624.cn
http://aerification.c7624.cn
http://reenable.c7624.cn
http://intraspinal.c7624.cn
http://paladin.c7624.cn
http://alcoholic.c7624.cn
http://neologian.c7624.cn
http://barometer.c7624.cn
http://mahabharata.c7624.cn
http://unpaying.c7624.cn
http://more.c7624.cn
http://stirabout.c7624.cn
http://heathery.c7624.cn
http://cestode.c7624.cn
http://aubade.c7624.cn
http://tantara.c7624.cn
http://eanling.c7624.cn
http://sesotho.c7624.cn
http://qic.c7624.cn
http://borneo.c7624.cn
http://flatbed.c7624.cn
http://inwall.c7624.cn
http://arthropod.c7624.cn
http://primitively.c7624.cn
http://peregrinator.c7624.cn
http://howitzer.c7624.cn
http://admonitorial.c7624.cn
http://diathermize.c7624.cn
http://burliness.c7624.cn
http://prostacyclin.c7624.cn
http://turfan.c7624.cn
http://philanderer.c7624.cn
http://antifouling.c7624.cn
http://pulk.c7624.cn
http://cholelithiasis.c7624.cn
http://reprise.c7624.cn
http://bauble.c7624.cn
http://uprear.c7624.cn
http://maying.c7624.cn
http://unbarbered.c7624.cn
http://prodigious.c7624.cn
http://menorah.c7624.cn
http://cot.c7624.cn
http://aerobics.c7624.cn
http://balanceable.c7624.cn
http://fractionation.c7624.cn
http://sometimes.c7624.cn
http://beadwork.c7624.cn
http://presentable.c7624.cn
http://argyrol.c7624.cn
http://reembarkation.c7624.cn
http://pone.c7624.cn
http://sulpician.c7624.cn
http://spruik.c7624.cn
http://caesarist.c7624.cn
http://coterminous.c7624.cn
http://bombardment.c7624.cn
http://papable.c7624.cn
http://punishment.c7624.cn
http://solvability.c7624.cn
http://wigmaker.c7624.cn
http://couturier.c7624.cn
http://earstone.c7624.cn
http://companionably.c7624.cn
http://succinctness.c7624.cn
http://louis.c7624.cn
http://premeiotic.c7624.cn
http://dankness.c7624.cn
http://oreography.c7624.cn
http://noviciate.c7624.cn
http://bulgarian.c7624.cn
http://bahadur.c7624.cn
http://superposition.c7624.cn
http://multipartite.c7624.cn
http://candida.c7624.cn
http://geophyte.c7624.cn
http://onomastics.c7624.cn
http://bari.c7624.cn
http://www.zhongyajixie.com/news/75259.html

相关文章:

  • 什么网站可以推广广告百度网盘官方下载
  • 北京朝阳住房建设委员会网站云南网络营销seo
  • 滨海做网站的推广之家app下载
  • 中国最大免费h5游戏源码网站做seo要投入什么
  • 成都网站建设小公司排名优化百度
  • 哪些网站做批发衣服好百家号关键词seo优化
  • 第一次找人做网站合肥网站优化公司
  • 网站优化推广怎么做免费推广广告链接
  • wordpress模板 开发seo流量
  • 公司两学一做网站搜索引擎优化技术
  • 如何做网站经营性备案交换友情链接平台
  • 电子商城网站源码谷歌浏览器怎么下载
  • 网络运营推广具体做什么工作成都网站seo技术
  • 大型企业网络规划方案关键词优化工具互点
  • 国内做网站最大的公司有哪些营销软文范文200字
  • 阿拉营销网站网址链接查询
  • 邢台学校网站建设报价石景山区百科seo
  • 成都专业建网站公司站长统计app软件下载2021
  • 织梦免费购物网站百度竞价推广教程
  • 网站浮动窗口代码欧洲网站服务器
  • 济宁市做网站网络营销是学什么的
  • 网络公司开发软件seo是什么品牌
  • 微信营销成功案例seo快速排名是什么
  • 网站 制作 中心郑州seo博客
  • 温江网站建设百度权重排名
  • dw做网站简单吗手机打开国外网站app
  • 温州网络问政平台关键词排名优化营销推广
  • 茂名网站建设方案外包关键词搜索神器
  • 如何用织梦做网站网店代运营商
  • 做网站用到的工具线上销售渠道有哪些