houbb / sensitive-word

👮‍♂️The sensitive word tool for java.(敏感词/违禁词/违法词/脏词。基于 DFA 算法实现的高性能 java 敏感词过滤工具框架。请勿发布涉及政治、广告、营销、翻墙、违反国家法律法规等内容。高性能敏感词检测过滤组件,附带繁体简体互换,支持全角半角互换,汉字转拼音,模糊搜索等功能。)

Home Page:https://houbb.github.io/opensource/sensitive-word

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[功能建议] 一些参数可以动态配置,比如动态配置一些参数,不需要重新初始化引导类

nn200433 opened this issue · comments

@Lazy
@Bean
public SensitiveWordBs sensitiveWordBs(IWordAllow myWordAllow, IWordDeny myWordDeny) {
    return SensitiveWordBs.newInstance()
            .wordAllow(WordAllows.chains(WordAllows.defaults(), myWordAllow))
            .wordDeny(WordDenys.chains(WordDenys.defaults(), myWordDeny))
            .charIgnore(SensitiveWordCharIgnores.specialChars())
            .init();
}

上方初始化后(已经调用数据库保存的敏感词),想要执行 wordReplace(WordReplaces.chars(symbol)) 方法,动态修改替换策略。
发现替换策略使用的是 final IWordReplace replace = context.wordReplace(); 获取的。然而 context 却要依赖 init() 方法初始化。

image

那么意味着,不同的策略就要有多个引导类。这操作很反常!!!

image