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

网站营销主管岗位职责架构师是做什么的

网站营销主管岗位职责,架构师是做什么的,jsp小型网站开发代码,廊坊seo计费管理1、简述 在 Spring Boot 中#xff0c;Conditional 注解用于实现 条件化 Bean 装配#xff0c;即根据特定的条件来决定是否加载某个 Bean。它是 Spring 框架中的一个扩展机制#xff0c;常用于实现模块化、可配置的组件加载。 本文将详细介绍 Conditional 相关的注解…1、简述 在 Spring Boot 中Conditional 注解用于实现 条件化 Bean 装配即根据特定的条件来决定是否加载某个 Bean。它是 Spring 框架中的一个扩展机制常用于实现模块化、可配置的组件加载。 本文将详细介绍 Conditional 相关的注解包括 ConditionalOnClass、ConditionalOnMissingBean、ConditionalOnProperty 等并结合实际应用示例讲解其使用方式。 2、Conditional 注解概述 Conditional 是 Spring 4 引入的条件装配注解它可以根据外部环境或配置的状态决定是否创建 Bean。 其核心接口是 public interface Condition {boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata); }任何实现 Condition 接口的类都可以用于自定义条件判断。 Configuration public class MyConfig {BeanConditional(MyCondition.class) public MyService myService() {return new MyService();} }其中 MyCondition.class 需要实现 Condition 接口并提供判断逻辑。 3、Spring Boot 内置 Conditional 相关注解 Spring Boot 提供了一些常见的 Conditional 注解简化了条件判断的逻辑 注解作用ConditionalOnClass类路径下存在某个类时才加载该 BeanConditionalOnMissingClass类路径下不存在某个类时才加载该 BeanConditionalOnBean当容器中存在指定 Bean 时才加载当前 BeanConditionalOnMissingBean当容器中不存在指定 Bean 时才加载当前 BeanConditionalOnProperty当指定的配置属性满足条件时才加载当前 BeanConditionalOnExpression当指定的 SpEL 表达式为 true 时才加载当前 BeanConditionalOnJava当 Java 版本符合要求时才加载当前 BeanConditionalOnWebApplication当应用是 Web 应用时才加载当前 BeanConditionalOnNotWebApplication当应用不是 Web 应用时才加载当前 Bean 3.1 ConditionalOnClass 使用示例类路径检测 我们希望在 Spring Boot 项目中当类路径下存在 com.example.MyLibrary 这个类时才注册 MyService 这个 Bean。 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class MyAutoConfiguration {BeanConditionalOnClass(name com.example.MyLibrary)public MyService myService() {return new MyService();} }解释 如果 com.example.MyLibrary 存在则 MyService 会被创建。如果 com.example.MyLibrary 不存在则 MyService 不会被加载。 3.2 ConditionalOnMissingBeanBean 缺失时加载 如果用户没有手动定义 MyService则提供一个默认实现。 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class MyAutoConfiguration {BeanConditionalOnMissingBeanpublic MyService myService() {return new MyService(Default Implementation);} }解释 如果 Spring 容器中已经存在 MyService则不会创建新的 Bean。只有当 MyService 不存在时才会注册默认实现。 3.3 ConditionalOnProperty基于配置项条件加载 Bean 我们希望 MyService 只有在 app.feature.enabledtrue 时才被创建。 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class MyAutoConfiguration {BeanConditionalOnProperty(name app.feature.enabled, havingValue true, matchIfMissing false)public MyService myService() {return new MyService();} }解释 如果 application.properties 中包含 app.feature.enabledtrue则 MyService 会被创建。如果 app.feature.enabledfalse或者该属性未定义则 MyService 不会被加载。 在 application.properties 中启用 app.feature.enabledtrue3.4 ConditionalOnBean存在特定 Bean 时才加载 当 UserService 存在时才创建 OrderService。 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class OrderServiceConfiguration {BeanConditionalOnBean(UserService.class)public OrderService orderService() {return new OrderService();} }解释 如果 UserService 存在则 OrderService 也会被创建。如果 UserService 不存在则 OrderService 不会被加载。 3.5 ConditionalOnExpression基于 SpEL 表达式加载 当 server.port 大于 8080 时才创建 AdvancedService。 import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class AdvancedConfig {BeanConditionalOnExpression(#{T(java.lang.Integer).parseInt(${server.port:8080}) 8080})public AdvancedService advancedService() {return new AdvancedService();} }解释 server.port 8080 时AdvancedService 会被加载。其他情况下不会创建该 Bean。 在 application.properties 中配置 server.port90903.6 结合 ConditionalOnClass 实现 Starter 组件的热拔插 我们要创建一个 Spring Boot Starter 组件如果用户的 classpath 下存在 RedisTemplate则自动加载 Redis 相关的 Bean。 步骤 创建 Starter 组件 Configuration ConditionalOnClass(RedisTemplate.class) public class RedisAutoConfiguration {BeanConditionalOnMissingBeanpublic RedisTemplateString, Object redisTemplate(RedisConnectionFactory factory) {RedisTemplateString, Object template new RedisTemplate();template.setConnectionFactory(factory);return template;} }应用使用 Starter dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency如果引入 Redis 依赖RedisAutoConfiguration 会自动生效。如果不引入 Redis 依赖则 RedisTemplate 不会被创建。 4、总结 Conditional 及其衍生注解使 Spring Boot 具备了自动配置和热拔插的能力。ConditionalOnClass 可用于判断某个类是否存在常用于 Starter 组件的自动装配。ConditionalOnProperty 适用于基于配置的条件加载增强灵活性。ConditionalOnBean 和 ConditionalOnMissingBean 适用于组件依赖管理。 合理使用这些注解可以构建更加模块化、灵活、可配置的 Spring Boot 应用。
http://www.zqtcl.cn/news/32683/

相关文章:

  • 毕设做网站可能遇到的问题网站免费网站免费
  • 合肥网站建设新闻营销什么是软文推广
  • 赛罕区城乡建设局网站如何做流量网站
  • 免费个人网页制作网站百度推广是什么意思
  • 微信公众号做留言网站久久建筑网图集免费下载
  • 营口房产建设信息网站wordpress 文章无法显示
  • 百度站长如何验证网站烟台 做网站
  • 网站优化排名方法有哪些微网站 app 区别
  • 谁能给个网站谢谢seo运营是做什么的
  • 网站运维可以做哪些高清无版权网站
  • 微网站特效建站工具
  • 能够做代理的网站有哪些问题自己怎么做wap网站
  • 建设通网站怎么投诉有没有专门做包装设计的网站
  • 建设网站费用主要包括哪些内容在网上做设计赚钱的网站
  • 织梦备份网站数据农产品网络营销方案
  • 我的家乡网站建设wordpress国主题公园
  • 销售型企业网站免费个人网站服务器 html
  • 免费建一个自己的网站英文网站建站模板
  • 福田做网站怎么样仿阿里巴巴行业门户贸易网站模板
  • 公司注册网上申请网站成都小程序推广企业
  • 做网站网站的推广是不是犯罪的wordpress 存储自定义段
  • 公司网站建设哪家好辽阳网站建设企业
  • 大连专业零基础网站建设教学培训网站推广效益怎么分析
  • 检察院门户网站建设方案昆山网站建设昆山
  • 地方招聘网站如何做推广九江市住房与城乡建设厅网站
  • 什么网站做优化最好?免费的crm系统
  • 珠海做网站推广公司门户网站 建设
  • 重庆旅游网站建设规划seo内部优化方案
  • 郴州网站建设费用价格舆情信息报送
  • 励志做的很好的网站怎样用手机制作视频