[SPRING] 서블릿에서의 Autowiring
SPRING서블릿에서의 Autowiring
서블릿에서 스프링 autowiring을 사용하고자하므로 여기에 내 코드가있다 :
@Configurable
public class ImageServlet extends HttpServlet {
@Autowired
private SystemPropertyDao systemPropertyDao;
@Override
public void init() throws ServletException {
String imagePath = systemPropertyDao.findByID(StaticParam.CONTENT_FOLDER);
}
SystemPropertyDao에는 @Repository가 주석으로 표시됩니다.
및 내 applicationContext.xml :
<context:component-scan base-package="com.basepackage" />
<mvc:annotation-driven />
<context:annotation-config />
<context:spring-configured/>
веб.хмл :
<servlet>
<servlet-name>imageServlet</servlet-name>
<servlet-class>com.xeno.basepackage.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>imageServlet</servlet-name>
<url-pattern>/myimages/*</url-pattern>
</servlet-mapping>
때로는 autowiring 작품과 때로는 (봄 콩 systemPropertyDao에 대한 참조 null이 있습니다), 아무도 내가 뭔가를 놓치고 말해 줄래?
해결법
-
==============================
1.나는 다음의 링크에서 해결책을 따라 갔다. JBoss의 서블릿에서 Spring 빈에 접근하기
나는 다음의 링크에서 해결책을 따라 갔다. JBoss의 서블릿에서 Spring 빈에 접근하기
public class MyServlet extends HttpServlet { @Autowired private MyService myService; public void init(ServletConfig config) { super.init(config); SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext()); } }
-
==============================
2.서블릿에서 @Configurable 어노테이션을 제거하고 다음을 추가하십시오.
서블릿에서 @Configurable 어노테이션을 제거하고 다음을 추가하십시오.
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext (this);
init () 메소드의 첫 번째 줄에.
from https://stackoverflow.com/questions/11843690/autowiring-in-servlet by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 보안 SecurityContextHolder 전략을 설정하는 방법은 무엇입니까? (0) | 2018.12.24 |
---|---|
[SPRING] 스프링 mvc를 사용하여 @RequestParam을 사용하여 여러 매개 변수를 캡처하는 방법? (0) | 2018.12.24 |
[SPRING] spring restTemplate을 사용한 REST API의 기본 인증 (0) | 2018.12.24 |
[SPRING] Spring MVC에서 web.xml에 ContextLoaderListener 추가하기 (0) | 2018.12.24 |
[SPRING] 봄 부팅 및 맞춤 404 오류 페이지 (0) | 2018.12.23 |