我创建了一个过滤器,每个请求都会调用它。我有一个数据库调用: dbService.getNeeded()
. 如何只进行一次呼叫并在整个筛选器调用中使用它?
public class MyFilter extends OncePerRequestFilter {
@Autowired
private DBService dbService;
@Override
protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException {
boolean isNeeded = dbService.getNeeded();
if (isNeeded) {
// do something
}
}
}
1条答案
按热度按时间bwleehnv1#
我的建议是在application.properties文件中设置isneeded的值,而不是在dbservice中设置。这样,在整个应用程序运行之前,它始终是单个值。
您可以在过滤器中使用@value注解,并在src/main/resources/application.properties中具有如下值:
应用程序属性
isneeded=true
更新了带有@value注解的代码
还有其他选项可以从其他属性文件中读取属性。请看这里:
如何使用spring boot从java属性文件读取数据