Java

默认 Java 配置类

2019-03-18  本文已影响4人  JSON_NULL

在基础业务框架中,声明了一些基础的 Java 配置类,方便开发过程中使用。具体内容如下:

默认Java配置类

为了方便最终项目根据自身业务的实际情况进行选择性的使用,每个Java配置类都单独放到了一个Java Package 中。在使用过程中用户可根据自身项目选择扫描不同的包,从而引入不同的Java配置类。

CryptographyUtilsConfig

向 Spring 上下文中注入与密码学相关的Bean。

@Bean //数字摘要算法封装
DigestUtil digestUtil() {
  return new DigestUtil();
}

@Bean // 信息认证码算法封装
MacUtil macUtil() {
  return new MacUtil();
}

@Bean // 系统安全随机数对像
SecureRandom secureRandom() {
  return new SecureRandom();
}

@Bean // 随机数工具封装
RandomUtil randomUtil() {
  return new RandomUtil();
}

@Bean  // RSA 加解密,签名验签算法封装
RsaUtil rsaUtil() {
  return new RsaUtil();
}

所有封装类Bean都支持常用算法,并且返回值类型支持 byte[],十六进制的Sttring,和Base64的字符串。具体请参考对应类的说明文档。

GuavaEventBusConfig

这个Java类向Spring的Bean容器中注册了 google 的Guava 项目中的事件总线。

/**
 * 同步的eventBus,方便进行一些跨模块的处理
 * @return
 */
@Bean
public EventBus eventBus() {
    return new EventBus();
}

/**
 * 异步的eventBus
 * @return
 */
@Bean
@Qualifier("asyncEventBus")
public EventBus asyncEventBus(){
    ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(100);
    return new AsyncEventBus(executor);
}

支持同步事件和异步事件。具体的使用说明方式请参阅 Guava 项目的文档中有关事件总线的介绍。参考文档

RedissonClientConfig

用于向Spring的Bean容器中注册 RedissonClient 对象,需要在配置文件中配置
redis 服务器的相关参数后方能生效。具体使用方式可参考Redisson的相关文档。

RestTemplateHttpClientConfig

向Spring 的Bean容器中注册 RestTemplate 对象;已经支持HTTP和HTTPS。有关RestTemplate 对象的使用方法请参考Spring官方文档中的有关介绍,或者搜索相关博客。Spring官方文档的部分介绍

DefaultShiroConfig

业务框架对Shiro埋了深度的依赖,使用Shiro做用户登录、权限验证和Session管理等工作。此Java配置类,向Spring的Bean容器中注册了ShiroFilter对象。

业务框架对Shiro做了默认实现,支持以下特性:

  1. Session管理,分布式环境下的Session同步(依赖RedissonClient对象)。
  2. 默认集成了用户登录及权限验证功能,但用户、角色、权限的管理功能需要使用者自己实现。
  3. 默认支持两种授权方式:用户名密码登录授权,AccessKeyId和AccessKeySecret基于“信息认证码”的授权。

具体细节可参考有关“Shiro集成”的介绍。

DefaultSmsConfig

向Spring 的Bean容器中注册 ISmsSender 对象,

ISmsSender 对象调用第三方短信平台的接口进行发短信,默认集成了Submail和阿里云的短信接口,并且支持无热切换。

public interface ISmsSender extends ISmsProvider {
  ISmsProvider getProvider();

  void setProvider(ISmsProvider provider);
}

public interface ISmsProvider {
  ISmsResult sendSms(String phone, String template, Map<String, String> vars);

  String getType();
}

默认实现 DefaultSmsSender 不支持 动态注册 Provider。

DefaultStorageConfig

向Spring 的Bean空口中注册 IStorageManager 对象。

IStorageManager 用于调用第三方云存储系统的接口用于存储系统运行期间自行产生或用户上传的文件。目前支持本地存储和阿里OSS存储。并且支持热切换。

public interface IStorageManager extends IStorageProvider {

  IStorageProvider getProvider();

  void setProvider(IStorageProvider provider);
}

public interface IStorageProvider {
  String putFile(String bucket, String fileName, InputStream inputStream);

  String getType();
}

默认实现 DefaultStorageManager 不支持 动态注册 Provider。

上一篇下一篇

猜你喜欢

热点阅读