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

杭州 手机网站凡科手机网站设置问题

杭州 手机网站,凡科手机网站设置问题,小企业官网,wordpress付费插件网站01 前言 在 Spring Boot 3.4.x 版本中,Fallback 注解的引入为 bean 的注入逻辑提供了新的解决方案。 下面将深入探讨其用法及优势。 02 Fallback 注解概述 Fallback 注解与 ConditionalOnSingleCandidate 配合使用。 当存在单个 Primary Bean 时条件匹配&#xff1b…

在这里插入图片描述

01 前言

在 Spring Boot 3.4.x 版本中,@Fallback 注解的引入为 bean 的注入逻辑提供了新的解决方案。

下面将深入探讨其用法及优势。

02 @Fallback 注解概述

@Fallback 注解与 @ConditionalOnSingleCandidate 配合使用。

当存在单个 Primary Bean 时条件匹配;

若无 Primary Bean,则存在单个非 Fallback Bean 时也会匹配。

03 @Fallback 注解的使用场景

  1. 创建项目与定义接口 :新建 Spring Boot 3.4.0 及以上版本项目,定义一个 MyService 接口。
  2. 实现多个 Bean :分别实现 MyServiceImpl1 和 MyServiceImpl2 两个类,均标注 @Service 注解。
  3. 定义 AnotherBean 类 :该类依赖 MyService 类型的 bean,并在构造函数中注入。
  4. 配置 @ConditionalOnSingleCandidate :在 AnotherConfiguration 配置类中,使用 @ConditionalOnSingleCandidate 注解来条件性地创建 AnotherBean Bean。
  5. 测试接口 :通过 IndexController 类中的 index 方法调用 AnotherBean 的 doSomething 方法。

当未使用 @Fallback 注解时,由于存在多个 MyService 类型的 Bean,启动项目会报错,表明无法确定注入哪一个 Bean。

但若在 MyServiceImpl1 类上添加 @Fallback 注解,项目则可正常启动并输出相应日志。

以下是优化后的代码示例及分析:

MyService 接口

public interface MyService {void doSomething();
}
MyServiceImpl1 实现类
@Slf4j
@Service
@Fallback  // 标识该类为回退实现
public class MyServiceImpl1 implements MyService {@Overridepublic void doSomething() {log.info("这是 MyServiceImpl1 的实现,作为回退选项");}
}

MyServiceImpl2 实现类

@Slf4j
@Service
public class MyServiceImpl2 implements MyService {@Overridepublic void doSomething() {log.info("这是 MyServiceImpl2 的实现");}
}

AnotherBean 类

public class AnotherBean {private MyService myService;public AnotherBean(MyService myService) {this.myService = myService;}public void doSomething() {myService.doSomething();}
}

AnotherConfiguration 配置类

@Configuration
public class AnotherConfiguration {@Bean@ConditionalOnSingleCandidate(MyService.class)  // 条件注解,基于单候选 Beanpublic AnotherBean anotherBean(MyService myService) {return new AnotherBean(myService);}
}

IndexController 控制器

@RestController
public class IndexController {private final AnotherBean anotherBean;public IndexController(AnotherBean anotherBean) {this.anotherBean = anotherBean;}@GetMapping("/index")public String index() {anotherBean.doSomething();return "success";}
}

注解 :

  1. MyService 接口定义了 doSomething 方法,作为业务操作的规范。
  2. MyServiceImpl1 和 MyServiceImpl2 类分别实现了 MyService 接口。

MyServiceImpl1 通过 @Fallback 注解标识为回退实现,在没有明确的 Primary Bean 时,它将作为候选。

  1. AnotherBean 类依赖 MyService 类型的 Bean,并在构造函数中注入。
    它通过调用 MyService 的 doSomething 方法来执行具体业务逻辑。

  2. AnotherConfiguration 配置类中的 anotherBean 方法使用 @ConditionalOnSingleCandidate 注解。
    该注解会检查 MyService 类型的 Bean 是否存在单个候选(包括 Primary Bean 或非 Fallback Bean)。

如果满足条件,则创建 AnotherBean Bean。

  1. IndexController 控制器通过构造函数注入 AnotherBean,并在 index 方法中调用其 doSomething 方法。

最后
Spring Boot 3.4.x 版本的 @Fallback 注解为开发者提供了更灵活的 bean 注入策略。

在面对多个实现类时,通过 @Fallback 注解可以有效避免因 Spring 无法确定注入哪个 Bean 而导致的项目启动失败问题。


文章转载自:

http://gvi0xkFh.tqxtx.cn
http://jtpLEFeT.tqxtx.cn
http://x4QtjQ6h.tqxtx.cn
http://QWkcmy8b.tqxtx.cn
http://ON1NCNuT.tqxtx.cn
http://oDtCjm18.tqxtx.cn
http://TZcSsKFD.tqxtx.cn
http://bJHUUFSl.tqxtx.cn
http://81UXUfVd.tqxtx.cn
http://L833CyxN.tqxtx.cn
http://BBf8AQJ5.tqxtx.cn
http://toCwgWkK.tqxtx.cn
http://XNQ61Kl4.tqxtx.cn
http://M6FOzgqo.tqxtx.cn
http://DQRbusHj.tqxtx.cn
http://hKQnbVQ1.tqxtx.cn
http://lyVL1GVe.tqxtx.cn
http://n9V0Zs0s.tqxtx.cn
http://Oz7dzgEb.tqxtx.cn
http://OP3QWDs2.tqxtx.cn
http://L0crK4aG.tqxtx.cn
http://Hf47sD7L.tqxtx.cn
http://ejuTGlPU.tqxtx.cn
http://FwTqRTfI.tqxtx.cn
http://oYIVKPTf.tqxtx.cn
http://GbHhTjVK.tqxtx.cn
http://ADxn6m3z.tqxtx.cn
http://Hj97GO8F.tqxtx.cn
http://oi4prfFe.tqxtx.cn
http://MCrbK8ev.tqxtx.cn
http://www.dtcms.com/wzjs/679621.html

相关文章:

  • 做网站页面对PS切图word如何做网站链接
  • 如何搭建自己的网站网站开发前景好吗
  • 网站建设的环境会做网站开发 但是不会二次开发
  • 会议网站建设方案知名建筑类的网站
  • wordpress站点地址写错长春网站建设58同城
  • 网站整站源码下载室内设计联盟手机版
  • 网站建设公司选择标准有专门做序列图的网站
  • wordpress网站加速工具网站开发精灵
  • 陈村建网站网站建设费可以计业务费吗
  • 网站正在建设中提示页面建怎么网站比较赚钱
  • 济南网站制作平台徐州网站建设魔站
  • 栖霞建设网站舆情信息怎么写
  • seo如何网站正常更新免费网站建设推广服务
  • 丹东网站开发公司鹤壁市做网站
  • 安庆哪里做网站乐清新闻综合频道节目表
  • 如何做网站的实时画面wordpress 登录背景
  • 广州网站建设360网站优化wordpress图片旋转
  • 59网一起做网站网站做app的软件叫什么
  • 提供常州网站建设公司企业网站模板哪个好
  • 建一个购物网站要多少钱模拟制作app的软件
  • 网站建设技术网站建设网站建设计入什么科目
  • 个体户可以注册网站建设服务wordpress grace6
  • 网站建设 h5医院网站怎么做优化排名
  • 建设020网站需要多少钱国内环保行业网站开发
  • 深圳php网站开发个人网站设计公司
  • 做网站需要前置审批做游戏网站需要注意的问题
  • 网站基本功能文山专业网站建设哪家好
  • 网站建设常见问题凡客优品家居
  • 重庆品牌型网站建设多少钱指数函数图像及性质
  • 上海石化有做网站设计的吗wordpress 解释符号