前景提要:在一个项目中,由于数据库中敏感词删除掉了,但是在网页进行匹配时仍然能够匹配上已删除的词。
查看项目源码发现使用了@PostConstruct注解:
此注解的作用是:@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。
注意,是整个项目中只会在启动的时候运行一次。所以就导致了项目出现了问题。
如果你打算在PostContruct中查询数据并保存,这时候就要注意了,因为
在PostConstruct的注解方法里查询数据库数据并保存起来,如果数据库的数据发生了改变,需要重新启动项目才可以同步数据,因为PostConstruct注解后只会被服务器执行一次。(重新启动项目就会再一次执行一次@postContruct中的方法。)
另外说一句,在一个类中:构造方法最先执行,其次是@Autowired,最后是@PostConStruct。