0
저는 spring
과 struts2
을 처음 사용합니다. 내 action
의 두 인스턴스가 있는데, 하나는 spring
주입이고 다른 인스턴스는 그렇지 않습니다. 은 여기 내 나는이 응용 프로그램을 디버깅 할 때 WelcomeUserAction.java
struts2 액션의 인스턴스가 두 개 나오지 않습니다.
public class WelcomeUserAction extends ActionSupport {
private String username;
private String password;
private String name;
private UserDaoImpl userDao;
@Action(value="Welcome", results = {
@Result(name ="success",location="pages/welcome_user.jsp"),
@Result(name ="input", location="pages/signup.jsp")
})
public String execute(){
User user = new User();
user.setPassword(password);
user.setUsername(username);
user.setName(name);
if (getUserDao() == null){
System.out.println("getUserDao is null");
}
getUserDao().saveUser(user);
return SUCCESS;
}
/* getter and setters... */
}
간단한, 나는 인덱스 페이지가로드도 전에 발견, 봄이 주입하고 있었다이다. 은 PIC는
을 보여줍니다 그리고 WelcomeUserAction
가 작동을 시작할 때, 다른 WelcomeUserAction
인스턴스가, 그리고 spring
관리 부분, 즉 userDao
이 null
되었다 때문이다.
왜 그런지는 알 수 없습니다. applicationContext.xml
및 web.xml
과 같은 더 많은 정보를 제공해야합니까?
왜 액션의 인스턴스에 대해 걱정할 것인가? Struts2에서는 원하는만큼 인스턴스를 가질 수 있으며 모든 스레드로부터 안전합니다. –
@RomanC 글쎄, 나는 그 '봄'이 모든 행동에 주입되지 않는 것 같아 걱정한다. 두 번째 그림에서,'userDao'는 내가 필요로 할 때'null'입니다. – user1668903
스프링 빈 구성에서 사용되는 배선 방법에 따라 다릅니다. –