/ / Obteniendo ServletContext Attribute "javax.servlet.context.tmpdir" en Controller - spring, servlets, spring-mvc

Obteniendo ServletContext Attribute "javax.servlet.context.tmpdir" en Controller - spring, servlets, spring-mvc

Soy realmente nuevo en Spring y Spring MVC y soytrabajando en un tipo de programa de prueba que carga un archivo, lo escribe en el directorio de trabajo temporal del servlet, y luego lo pasa al resto del programa (que es un trabajo por lotes de Spring y funciona bien). Mi problema actualmente es averiguar cómo obtener la ubicación del archivo temporal dentro de mi Controlador utilizado para configurar el DispatcherServlet de Spring.

El código que he visto en línea para obtener la ubicación del archivo temporal es este:

File directory = (File)getServletContext().getAttribute("javax.servlet.context.tmpdir");
File file = File.createTempFile("prefix", ".tmp", directory);
FileWriter out = new FileWriter(file);

Pero por lo que he visto hasta ahora, no es posible usar getServletContext en la clase de controlador que estoy usando para configurar el servlet.

Cualquier consejo sobre cómo obtener lo que quiero o sobre otras formas de manejar esto es muy apreciado. Si necesita más detalles solo pregunte.

Respuestas

2 para la respuesta № 1

¿Intentó inyectar ServletContext en su controlador con @Autowired anotación y acceda a ella en su método.

class XController {
@Autowired
private ServletContext servletContext;

}