品牌型号:联想ThinkPad X1
系统:Windows10家庭版
软件版本:Spring 5.3.7
我们在做Java后端开发的时候,经常要用Spring Boot框架,它可以简化我们开发模式,帮我们省去了传统框架中大量繁琐的配置工作,很大的提升了项目搭建和开发的效率。不过,有很多程序员只会用框架去写业务逻辑,但是很少去研究它的运行原理。此外,做项目的时候,经常要对内容进行风控处理,那么Spring Boot如何实现敏感词过滤呢?接下来,我们就来针对“Spring Boot如何实现自动装配,Spring Boot如何实现敏感词过滤”这两个问题给大家讲解,希望能让大家更好的使用Spring Boot。
一、Spring Boot如何实现自动装配
有很多新手伙伴都很好奇,Spring Boot到底是怎么实现自动装配的呢?毕竟Spring Boot的优势就是自动装配,不用我们手动编写大量的XML配置,通过引入依赖就可以直接使用功能。

我们可以看下启动类中的@SpringBootApplication注解,这是一个复合注解,里面真正起作用的是@EnableAutoConfiguration注解。

Spring Boot项目启动的时候,Spring Boot就会通过这个@EnableAutoConfiguration注解去扫描类路径下的META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,读取里面配置的所有自动装配类。

装配类中会根据项目中引入的依赖进行条件判断,例如我们引入了spring-boot-starter-web依赖,就会自动装配WebMvc、Tomcat相关组件,如果引入的是数据库依赖,还会自动配置数据源、事务管理等。

可以这么理解,启动类启动后,会扫描固定配置文件,然后根据依赖和环境会自动创建并注入Bean完成配置,整个过程是自动化的,不需要我们手动去配置。
二、Spring Boot如何实现敏感词过滤
我们应该有不少伙伴做过论坛评论、用户留言或者是相关交互功能,这些功能中我们要做好内容风控,通过搭建敏感词过滤机制,可以屏蔽掉一些违规的、低俗的不良词汇,能够保障平台内容合规健康。虽然Spring Boot本身是没有内置敏感词过滤功能,但是我们可以写一套简单代码来快速实现敏感词过滤逻辑。
1、我们可以利用采用DFA算法来写个工具类。

2、然后我们就可以写个controller测试下这个工具类了。

3、推荐使用DFA算法来实现敏感词过滤机制,尤其是在高并发项目中,用DFA算法来做的话查询效率很快。敏感词建议实现热更新,不然我们每次更新敏感词都要重启项目,可能会引发一些额外的问题。可以考虑加一个全局过滤器跟我们业务层校验进行双层拦截会更加稳妥些,我们创建一个请求包装类来实现全局对请求参数进行自动过滤。

4、我们要注册下这个过滤器,然后在启动类中通过@ServletComponentScan注解来开启过滤器,这样所有接口入参都会自动过滤敏感词,不需要手动去调用我们上面写的工具类中的方法了。还有就是我们在写工具类的时候,有个地方可以优化下,我的工具类将敏感词写死了,在真实项目中我们是在resources下创建一个敏感词文件,然后每行一个敏感词,项目启动的时候让文件加载到DFA树。

以上就是Spring Boot如何实现自动装配,Spring Boot如何实现敏感词过滤的全部内容了。Spring Boot在项目启动的时候会扫描配置文件,根据依赖和环境自动加载组件,然后结合@Conditional条件注解按需装配Bean。我们在项目中想实现敏感词过滤的话,Spring Boot是没有内置敏感词过滤机制的,我们可以使用DFA算法构建一个字典树,在项目启动的时候读取resources下的敏感词文件,这样我们在发起请求的时候会很高效得查询字典树进行敏感词过滤了。