ssh2 依赖注入的问题,通过spring将dao注入service,但在action中不通过注入,而是直接new,结果失败。 10
action-->service-->dao.按照这样的顺序依赖注入,是成功的。我现在进行修改,在action中不进行注入,直接new一个service对象出来,结果在s...
action-->service-->dao.按照这样的顺序依赖注入,是成功的。我现在进行修改,在action中不进行注入,直接new一个service对象出来,结果在service类中,dao对象注入失败。请大位大虾帮忙解决下。
展开
3个回答
展开全部
可以不需要New,也不需要注解。你可以在需求的时候,创建实例时,从Spring中把它的实现取出来即可。
比如:
UserService us = SpringContextUtils.getBean("userServiceImpl");
UserServiceImpl中的DAO是自动注入的。
而不用是 UserService us = new UserServiceImpl();
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
@Service
public class SpringContextUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
if (applicationContext == null){
return null;
}
return (T)applicationContext.getBean(name);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主你在web.xml里面一定配好了listener对吧,那你直接这样写
ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
ctx.getBean("YourDAOBeanName");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询