저는 두 서블릿과 두 서블릿에 대한 공통 데이터 소스를 가지고 있습니다. 첫 번째 서블릿은 mvc이고 두 번째 서블릿은 JAXWS입니다. 두 번째 서블릿은 @Autowired 필드에 대해 항상 null입니다. 널 (null)이 필드를 확인하기위한 나의 결정은 그렇다 :null @autowired 필드를 확인하고 수동으로 초기화하십시오.
public class InRequestServiceImpl implements InRequestService {
@Autowired
public InRequestDao inRequestDao;// = new InRequestDaoImpl();
public InRequestServiceImpl() {
if (inRequestDao == null) inRequestDao = new InRequestDaoImpl();
}
@Override
@Transactional
public void insertData(InRequest doc) throws IOException {
inRequestDao.insertData(doc);
}
...
}
참조 질문 : SPRING: visibility of autowired beans in services
질문은 : 좋은 방법이 상황에 있는가? 깨끗한 코드를 작성하는 데 도움이됩니다.
아니요. 일반적으로 autowired가 항상 있어야합니다. 어떻게 구성 했습니까? – Stultuske
나는 아래와 같이 생성자 삽입을 선호한다. '@Autowired public InRequestServiceImpl (InRequestDao inRequestDao) { this.inRequestDao = inRequestDao; } @ –
@ DavidPrezCabrera 아마도 autobired 필드가 null이기 때문에 같은 문제를 일으킬 것입니다. – Stultuske