• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Springboot基于enable模块驱动的实现

springboot 搞代码 4年前 (2022-01-09) 7次浏览 已收录 0个评论

enable作为模块驱动在Spring Farmework、Spring Boot、Spring Cloud使用,都是通过注解的形式以@enable作为前缀,一些常用注解如

框架 注解 模块
Spring Framework @EnableWebMvc Web MVC模块
Spring Framework @EnableTransactionmanagement Web MVC模块
Spring Framework @EnableCacheing Cacheing模块
Spring Framework @EnableMBeanExport JMX模块
Spring Framework @EnableWebFlux Web Flux模块
Spring Framework @EnableAspectJAutoProxy AspectJ模块
Spring Boot @EnableAutoConfiguration 自动装配模块
Spring Boot @EnableWebManagementContext Actuator模块
Spring Boot @EnableConfigurationProperties 配置属性绑定模块
Spring Boot @EnableOauth2Sso OAuth2单独登录模块
Spring Cloud @EnableEurekaServer eureka服务模块
Spring Cloud @EnableConfigServer 配置服务器模块
Spring Cloud @EnableFeignClients Feign客户端模块
Spring Cloud @EnableZuulProxy 服务网关zuul模块
Spring Cloud @EnableCircuitBreaker 服务熔断模块

如何自定义enable开发?

基于ImportSelector实现注解驱动

自定义接入类型

Access为接入类型的接口,下文的RPC接入和REST接入基于这个实现,定义两个接口,一个为启动,一个停止,内部嵌套一个枚举用于标识是哪一种接入

public interface Access {
  /**
   * 初始化配置
   */
  void start();

  /**
   * 销毁配置
   */
  void stop();

  enum Type{
    REST,
    RPC
  }
}

定义RPC和REST的实现

REST实现,只是简单的打印方法

public class RestAccess implements Access{
  @Override
  public void start() {
    System.out.println("rest接入配置");
  }

  @Override
  public void stop() {
    System.out.println("rest接入销毁配置");
  }
}

RPC实现

public class RpcAccess implements Acc<span>本文来源gaodai#ma#com搞*代#码9网#</span>ess{
  @Override
  public void start() {
    System.out.println("rpc接入配置");
  }

  @Override
  public void stop() {
    System.out.println("rpc接入销毁配置");
  }
}

自定义注解EnableAccess

接入类型为RPC或者REST,AccessImportSelector在下一步骤实现

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import(AccessImportSelector.class)
public @interface EnableAccess {
  /**
   * 接入类型
   * @return
   */
  Access.Type type();
}

实现ImportSelector


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Springboot基于enable模块驱动的实现
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址