So to answer your question, you can avoid requiring the caller from passing in the ServlertContext by trying this below to get it:
((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest().getServletContext()