借助@Conditional实现自定义初始化Spring Bean

本项目使用传统的Spring MVC框架进行搭建,未使用Spring Boot,而需要实现根据用户配置自动选择TCP、UDP、串口等不同协议进行数据获取,还有用户若在内网,实现短信服务动态关闭(wsimport 方式实现的,用户配置修改后Spring不加载相应的短信服务)。若使用Spring Boot,Spring Boot提供了一系列根据条件初始化Spring Bean的注解,非常方便的进行此等操
摘要由CSDN通过智能技术生成

本项目使用传统的Spring MVC框架进行搭建,未使用Spring Boot,而需要实现根据用户配置自动选择TCP、UDP、串口等不同协议进行数据获取,还有用户若在内网,实现短信服务动态关闭(wsimport 方式实现的,用户配置修改后Spring不加载相应的短信服务)。若使用Spring Boot,Spring Boot提供了一系列根据条件初始化Spring Bean的注解,非常方便的进行此等操作,在传统Spring MVC项目中,可自己借助@Conditional实现以上操作。

  • 协议动态选择

    • 首先定义不同协议的注解

      /**
      * @类名 ServerType
      * @描述 不同协议初始化不同服务器(0:TCP,1:UDP,2:串口)
      * @作者 zhuxl
      * @创建时间 2017-3-28下午04:50:55
      */
      public class ServerType {
             
      /**
       * @类名 TCP
       * @描述 TCP
       * @作者 zhuxl
       * @创建时间 2017-3-28下午04:55:38
       */
      public @interface TCP {
             
      
      }
      
      /**
       * @类名 UDP
       * @描述 UDP
       * @作者 zhuxl
       * @创建时间 2017-3-28下午04:55:43
       */
      public @interface UDP {
             
      
      }
      
      /**
       * @类名 Serial
       * @描述 串口
       * @作者 zhuxl
       * @创建时间 2017-3-28下午04:55:48
       */
      public @interface Serial {
             
      
      }
      }
    • 根据配置文件中不同的配置,实现对不同协议的处理

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架识别bean的方式有以下几种: 1. 扫描注解:Spring可以通过扫描指定包路径下的类来自动识别带有特定注解的bean。您可以使用`@Component`、`@Service`、`@Repository`等注解来标识bean,并在配置文件中配置包扫描路径。 2. XML配置:通过在XML配置文件中显式地声明bean,Spring可以根据配置文件中的定义来创建和管理bean。您可以使用`<bean>`元素来定义bean,并指定其类名、属性值等信息。 3. Java配置类:使用Java配置类,您可以通过编写代码来配置bean。通过在Java配置类上添加`@Configuration`注解,并在方法上添加`@Bean`注解来定义bean。 4. 自动装配:Spring可以自动识别并装配bean,使其能够在其他bean中进行依赖注入。您可以使用`@Autowired`、`@Resource`等注解来实现自动装配。 5. 条件化注册:Spring提供了条件化注册bean的功能,可以根据特定条件来决定是否注册某个bean。您可以使用`@Conditional`注解来标记一个条件,当满足该条件时才会注册对应的bean。 6. Bean后置处理器:Spring提供了Bean后置处理器的机制,您可以实现自己的后置处理器,在bean创建后对其进行额外的处理。通过实现`BeanPostProcessor`接口,您可以在bean的初始化前后对其进行处理。 这些方式可以单独使用,也可以结合使用。Spring框架会根据配置文件和注解来识别和创建bean,并管理它们的生命周期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值