ssh2 依赖注入的问题,通过spring将dao注入service,但在action中不通过注入,而是直接new,结果失败。 10

action-->service-->dao.按照这样的顺序依赖注入,是成功的。我现在进行修改,在action中不进行注入,直接new一个service对象出来,结果在s... action-->service-->dao.按照这样的顺序依赖注入,是成功的。我现在进行修改,在action中不进行注入,直接new一个service对象出来,结果在service类中,dao对象注入失败。请大位大虾帮忙解决下。 展开
 我来答
殁恋
2013-08-19
知道答主
回答量:9
采纳率:0%
帮助的人:3.2万
展开全部
你new出来的service对象和你在spring中注入的service对象不是同一个对象,在spring中service对象到你是赋了值的,但是你new出来的service对象中的dao是没有赋值的。当然会出问题,你要么就全部注入,不要new ,在实际开发中也不会这样做
kevintop3
2013-08-20 · TA获得超过1.5万个赞
知道小有建树答主
回答量:890
采纳率:100%
帮助的人:534万
展开全部

可以不需要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); 
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蛋哥的龙叔
2013-08-20 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:45.9万
展开全部

楼主你在web.xml里面一定配好了listener对吧,那你直接这样写

ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
ctx.getBean("YourDAOBeanName");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式