当前位置: 首页 > 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.pierceye.com/news/32683/

相关文章:

  • 如何修改网站备案南宁市住房和城乡建设部网站
  • 商城网站建设是 什么软件吉林网站建设设计
  • 四川住房建设厅官方网站企业展厅设计要点
  • 券多多是谁做的网站软件工程学科评估排名
  • 网站的关键词怎么设置腾讯企业邮箱的优惠活动
  • 杭州网站专业制作下载了一个asp网站但不知道管理员密码怎么办
  • 简要说明网站制作的基本步骤网站管理与开发怎么做网站
  • 克旗网站制作5229998镇江网站建设远航网络
  • 青岛建设交易中心网站wordpress怎么做积分
  • 免费小说网站怎么做工程公司注册需要什么条件
  • 临海门户网站住房和城乡建设规划局有哪些网站可以免费做推广的
  • 营销型网站分为哪几种重庆住房城乡建设厅官方网站
  • 保定网站设计有做数学题的网站吗
  • 大岭山镇仿做网站站长之家whois查询
  • 网站建设行业解决方案公司网站推广计划书
  • 如何做公众号小说网站赚钱H5平台网站建设
  • 学校网站建设及管理制度网站正在建设中的网页怎么做
  • 长春网站建设方案咨询张向东
  • 即墨网站建设公司怎么建设网站百度搜索的到
  • 石家庄招标网官方网站WordPress判断文章形式
  • 扁平化网站 psd新公司网站建设分录
  • 网上拿货做哪个网站好无锡工程建设信息网站
  • 室内设计网站推荐知乎北京画册设计公司
  • 传奇免费网站模板下载学软件工程可以从事什么工作
  • 兰州企业网站建设公司经常使用( )对网页的布局进行控制
  • 网站建设科技风php做直播类型的网站
  • 建站市场分析工会 网站 建设
  • 深圳网站专业建设公司做京东网站需要哪些手续费
  • 中山住房和建设局工程交易网站总结什么是网络营销
  • 广告模板网站wordpress do action