SpringBoot--基础--09--条件注解

2023-11-07

SpringBoot–基础–09–条件注解


一、条件注解

1.1、代码和测试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

SysService

public interface SysService {
	void show();
}

WindowService

public class WindowService implements SysService {
	@Override
	public void show() {
		System.out.println("我是Window");
	}
}

LinuxService

public class LinuxService  implements  SysService{
	@Override
	public void show() {
		System.out.println("我是linux");
	}
}

LinuxCondition

public class LinuxCondition implements Condition {
	@Override
	public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
		String sysName = context.getEnvironment().getProperty("os.name");
		if (sysName.contains("Linux")) {
			return true;
		}
		return false;
	}
	
}

WindowsCondition

public class WindowsCondition implements Condition {
	@Override
	public boolean matches(ConditionContext context,
						   AnnotatedTypeMetadata metadata) {
		String sysName = context.getEnvironment().getProperty("os.name");
		if (sysName.contains("Windows")) {
			return true;
		}
		return false;
	}

}

ConditionConifg

@Configuration
public class ConditionConifg {
	@Bean
	@Conditional(WindowsCondition.class) // 1如果是wind系统创建对应的bean
	public SysService windowsListService() {
		return new WindowService();
	}
	
	@Bean
	@Conditional(LinuxCondition.class) // 2如果是Linux系统创建对应的bean
	public SysService linuxListService() {
		return new LinuxService();
	}
	
}

Test

public class Test {
	
	public static void main(String[] args) {
		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConditionConifg.class);


		SysService sysService = context.getBean(SysService.class);

		String sysName = context.getEnvironment().getProperty("os.name");
		System.out.println("当前的操作系统是:"+sysName);

		System.out.println("------------------------------------");
		sysService.show();
	   
	}
	
}

代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/mysql_mybaties_DB/springboot-learn/springboot-4

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringBoot--基础--09--条件注解 的相关文章

  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • Selector.close() 是否关闭所有客户端套接字?

    我是 nio 套接字的新手 我已经使用 nio 套接字编写了一个服务器 现在我正在尝试编写关闭钩子以确保通过清理资源正常退出 我的问题是Selector close 方法关闭所有客户端套接字 如果没有 请告诉我如何访问所有客户端套接字 而无
  • 如何重复一段文本中的每个字母?爪哇语

    就像在口吃中一样 如果文本为 dean 并且乘数为 3 则结果将是 dddeeeaaannn 由提供的乘数指定的次数 public static void repeatLetters String text dean int n 3 Str
  • 二元运算符 >=、-、* 的错误操作数类型

    我无法弄清楚如何修复代码中不断出现的这些错误 import java util Scanner public class Unit02Prog1 public static void main String args Scanner inp
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 当我们使用赋值而不是比较时,如何评估 if/while 条件?

    我在学习 Java 的 OCA OCP 时发现了这个令人惊讶的事情 下面是第一段代码 其中 if 测试条件 部分 让我惊讶 public class BooleanIf public static void main String args
  • 用于制作代码编辑器的 JavaFX 相当于 JSyntaxPane 的什么?

    以前在 Swing 中 我使用过JSyntaxPane用于制作一个小型 Java 源代码编辑器 为了练习 我决定用 JavaFX 重做整个项目并添加对更多语言的支持 最好是尽可能多 不过好像没有什么类似的JSyntaxPane 一些研究让我
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 在 doxygen 中使用 @see 或 @link

    我之前用 Javadoc 记录并使用了标签 see link or see foo and link foo 在我的描述中链接到其他课程 现在我尝试了doxygen 似乎这些标签不兼容 如果我运行 doxygen 完整的标签将被简单地解释为
  • java:为什么主线程等待子线程完成

    我有一个简单的java程序 主线程 main 创建并启动另一个线程t class T extends Thread Override public void run while true System out println Inside
  • 是否可以创建 Java RAM 磁盘以与 java.io.* API 一起使用?

    我正在使用一个第三方库 它基本上创建一个输出目录 其中包含不同类型的文件和子目录 我希望能够编写单元测试来确认输出正确 我希望能够将库与 RAM 磁盘一起使用 这样库所做的任何事情都不会以任何方式接触实际的磁盘板 这个想法是让测试运行和清理
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • JFrame 在连续运行代码时冻结

    我在使用时遇到问题JFrame 它会冻结 连续运行代码 下面是我的代码 点击时btnRun 我调用了该函数MainLoop ActionListener btnRun Click new ActionListener Override pu
  • 始终将双精度舍入

    我怎么总是能把一个double to an int 并且永远不要将其四舍五入 我知道Math round double 但我希望它始终向上舍入 所以如果是的话3 2 四舍五入为 4 您可以使用Math ceil method 请参阅Java
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT
  • 添加 char 和 int

    据我了解 字符是一个字符 即一个字母 一个digit 标点符号 制表符 空格或类似的东西 因此 当我这样做时 char c 1 System out println c 输出 1 正是我所期望的 那么为什么当我这样做时 int a 1 ch
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 在 Spring MVC 中将请求写入文件

    我希望能够将整个请求写入 Spring MVC 控制器中的文件 我已尝试以下操作 但即使我使用大量参数发出 POST 请求 文件也始终为空 RequestMapping method RequestMethod POST value pay
  • Spring 如何在运行时获取有关“强类型集合”的泛型类型信息?

    我在 Spring 3 0 文档中阅读了以下内容 强类型集合 仅限 Java 5 在 Java 5 及更高版本中 您可以使用强类型集合 使用泛型类型 也就是说 可以声明一个 Collection 类型 使其只能包含 String 元素 例如
  • junit4 使用特定测试方法创建测试套件

    在 junit4 中 我想执行来自不同类的特定测试方法 即想要使用来自不同类的特定测试方法创建一个测试套件 假设我有两门课 public class Test Login Test public void test Login 001 Sy

随机推荐

  • CentOS停止维护那就用Alibaba Cloud Linux替代吧

    Alibaba Cloud Linux是阿里云推出的Linux镜像系统 CentOS停止维护可以选择Alibaba Cloud Linux替代 Alibaba Cloud Linux全面兼容RHEL CentOS生态 CentOS RHEL
  • Echarts实现3d图表

  • “定点打击”——XPath 使用细则(Just For Selenium WebDriver)(md重制版)

    定点打击 XPath 使用细则 Just For Selenium WebDriver md重制版 该系列文章系个人读书笔记及总结性内容 任何组织和个人不得转载进行商业活动 Selenium WebDriver中有关元素定位的学习 需要XP
  • ts类型声明文件的正确使用姿势

    ts类型声明文件的正确使用姿势 ts声明文件类型 DefinitelyTyped社区已定义 npm install types jquery save dev 与npm一同发布 解释 package json 中有 types 字段 或者有
  • 动态链表

    define CRT SECURE NO WARINGS include
  • 数据库相关

    目录 第一章 数据库概述 1 1 数据库的好处 1 2 数据库的常见概念 1 3 数据库的存储特点 1 4 数据库的常见分类 1 5 SQL语言的分类 第二章 MySQL概述 2 1 MySQL的背景 2 2 MySQL的优点 2 3 My
  • 闲谈IPv6-IPv6地址的scope到底是什么?

    一台主机启动后 每一块网卡都会自动生成一个fe80打头的 链路本地地址 这个地址在Linux上你删都删不掉 不信你试试 在Windows是可以删掉的 但是只要你重置网卡 它就会自动生成 这个所谓的链路本地地址到底有何怪异 我的主机安装两块网
  • 复购客户sql

    复购客户 用户分析是电商数据分析中重要的模块 在对用户特征深度理解和用户需求充分挖掘基础上 进行全生命周期的运营管理 拉新 gt 活跃 gt 留存 gt 价值提升 gt 忠诚 请尝试回答以下3个问题 现在数据库中有一张用户交易表order
  • 大模型部署避坑指南之: undefined symbol: cublasLtGetStatusString,version libcublasLt.so.11

    问题描述 OSError opt conda envs python35 paddle120 env lib python3 7 site packages nvidia cublas lib libcublas so 11 symbol
  • 当我遇到线上内存溢出问题是如何查看的

    首先我们自己写一个demo 来模拟内存溢出 新建User类 private int id private String name byte a new byte 1024 1000 public User public User int i
  • python oj刷题网站_程序员常用的刷题网站

    1 Lintcode Lintcode com LintCode网站是国内较大的在线编程 测评网站 此网站提供各大IT公司的算法面试题类型 行分门别类 由简单到中等 再到难 便于不同水平的程序员进行刷题练习 同时网站支持多种语言 Java
  • LeetCode905. 按奇偶排序数组

    给你一个整数数组 nums 将 nums 中的的所有偶数元素移动到数组的前面 后跟所有奇数元素 返回满足此条件的 任一数组 作为答案 示例 1 输入 nums 3 1 2 4 输出 2 4 3 1 解释 4 2 3 1 2 4 1 3 和
  • PostgreSQL之pgsql命令行常用命令

    文章目录 1 登录 1 1 psql报错 1 2 psql 错误 致命错误 用户 postgres Password 认证失败 2 常用操作 1 登录 1 1 psql报错 详情 分析 C Users Administrator gt pg
  • typecho反序列化漏洞复现

    typecho框架存在反序列化漏洞 利用此漏洞可执行任意代码 环境搭建 第一步 第二步 第三步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 漏洞分析 typecho build install php 文件中 使用unseria
  • Eclipse 安装集成 FindBugs BUG分析插件

    一 下载eclipse软件 https www eclipse org downloads 下载Zip压缩包 解压缩即可 二 下载findbugs plugin压缩包 官网下载或者是从其他资源获取 http findbugs sourcef
  • 阿里推荐算法:BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transform

    这篇是阿里猜你喜欢的一篇transformer paper 含金量很高 注意 1 bert用在推荐系统中 将用户的历史序列看做是词序列 2 测试时 将序列的最后一个item进行masked Abstract 根据用户历史的行为信息 对用户动
  • [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取

    娜璋带你读论文 系列主要是督促自己阅读优秀论文及听取学术讲座 并分享给大家 希望您喜欢 由于作者的英文水平和学术能力不高 需要不断提升 所以还请大家批评指正 非常欢迎大家给我留言评论 学术路上期待与您前行 加油 前一篇介绍分享英文论文审稿意
  • python1_4字符串

    字符串 string My name string My name string My name 字符串可以是单 双 三引号 三引号可以空行 res string 1 字符串的索引 res string 2 print res 如图所示1
  • rstudio 导出结果_R语言结果输出方法

    输出函数 cat sink writeLines write table 根据输出的方向分为输出到屏幕和输出到文件 1 cat函数即能输出到屏幕 也能输出到文件 使用方式 cat file sep fill FALSE labels NUL
  • SpringBoot--基础--09--条件注解

    SpringBoot 基础 09 条件注解 一 条件注解 1 1 代码和测试 SysService public interface SysService void show WindowService public class Windo