You've already forked FrameTour-BE
INotify
This commit is contained in:
@ -0,0 +1,32 @@
|
||||
package com.ycwl.basic.notify.starter;
|
||||
|
||||
import com.ycwl.basic.notify.NotifyFactory;
|
||||
import com.ycwl.basic.notify.adapters.INotifyAdapter;
|
||||
import com.ycwl.basic.notify.starter.config.NotifyConfigItem;
|
||||
import com.ycwl.basic.notify.starter.config.OverallNotifyConfig;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class NotifyAutoConfigurator {
|
||||
private final OverallNotifyConfig config;
|
||||
public NotifyAutoConfigurator(OverallNotifyConfig config) {
|
||||
this.config = config;
|
||||
if (config != null) {
|
||||
if (config.getConfigs() != null) {
|
||||
loadConfig();
|
||||
}
|
||||
if (StringUtils.isNotBlank(config.getDefaultUse())) {
|
||||
NotifyFactory.setDefault(config.getDefaultUse());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void loadConfig() {
|
||||
for (NotifyConfigItem item : config.getConfigs()) {
|
||||
INotifyAdapter adapter = NotifyFactory.get(item.getType());
|
||||
adapter.loadConfig(item.getConfig());
|
||||
NotifyFactory.register(item.getName(), adapter);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.ycwl.basic.notify.starter.config;
|
||||
|
||||
import com.ycwl.basic.notify.enums.NotifyType;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class NotifyConfigItem {
|
||||
private String name;
|
||||
private NotifyType type;
|
||||
private Map<String, String> config;
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.ycwl.basic.notify.starter.config;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "notify")
|
||||
@Data
|
||||
public class OverallNotifyConfig {
|
||||
private String defaultUse;
|
||||
private List<NotifyConfigItem> configs;
|
||||
}
|
Reference in New Issue
Block a user