обикновено използваме Пролетен контекст в сървлета, както следва
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
SomeBean someBean = (SomeBean) ctx.getBean("someBean");
Но в услугата REST, декларирана с помощта на анотация, всъщност не е servlet. Така че не получаваме getServletContext ()
Как да се справим с това?
отговор 1) Като предаваме контекста като параметър на метода
@GET
@Path("/create")
@Produces(MediaType.TEXT_PLAIN)
public String createCustomer(@Context ServletContext servletContext){
2) Другото решение е използването на ApplicationContextAware което е обяснено тук
Отговори:
0 за отговор № 1За да получите контекста на приложението, можете да приложите услугата си ApplicationContextAware
, След това, когато услугата е създадена, Spring ще се обади setApplicationContext
за да ви предостави контекста на приложението. В този метод можете да съхраните предоставения контекст за по-нататъшна употреба.