Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
titleInitialisering af autowiring
@WebServlet("/*")
public class NotificationBrokerServlet extends HttpServlet {

...
	@Override
	public void init() throws ServletException {
		Object o = getServletContext().getAttribute(NotificationBrokerServletContextListener.ANNOTATION_CONFIG_CONTEXT);
		
		if(o != null && o instanceof AnnotationConfigApplicationContext) {
			((AnnotationConfigApplicationContext)o).getAutowireCapableBeanFactory().autowireBean(this);
		}
	}

Bruger man derimod en JAX-WS genereret servlet kan denne autowiring ske ved brug af @PostConstruct  annotationen, demonstreret ved eksemplet her fra FGVHR:

Code Block
languagejava
titleInitialisering af autowiring
public abstract class AbstractFgvhrWS {

	@Resource
	protected WebServiceContext context;

	@PostConstruct
	public void init() {
		ServletContext servletContext = (ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
		Object o = servletContext.getAttribute(ANNOTATION_CONFIG_CONTEXT);
		((AnnotationConfigApplicationContext)o).getAutowireCapableBeanFactory().autowireBean(this);
	}

I eksemplet her extender klasserne der implementerer de genererede JAX-WS klasser den abstrakte klasse.

Afsluttende

Samlet set udgør dokumentet her med eksempler en vejledning til hvordan DI i NSP's java-komponenter skal håndteres med brug af konfigurationsklasser, beans, autowiring og AnnotationConfigApplicationContext / AnnotationConfigWebApplicationContext.