独立的main方法调用Spring MVC框架中的service

Ctrl层调用service层正常,但是我这边有个需求,需要通过main方法直接调用service层,实现数据库查询。连接池使用的是muBatis,application... Ctrl层调用service层正常,但是我这边有个需求,需要通过main方法直接调用service层,实现数据库查询。连接池使用的是muBatis,applicationContext.xml中配置了
<bean id="sqlSessionFactory"><property name="mapperLocations">
及dao层中需要注入的Xxx.xml(内为SQL语句)
main方法中我初始化
XxxSercice service = new XxxSerciceImpl();
但是service中的dao为空,请问如何在main中也实现dao的注入?
展开
 我来答
superDiscovery
推荐于2017-09-05 · TA获得超过216个赞
知道小有建树答主
回答量:298
采纳率:0%
帮助的人:196万
展开全部

这个service不能这么new出来,需要在main方法中得到spring容器

public class SpringTest {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
IPersonService ips = (IPersonService) ac.getBean("personService");
ips.sayHelloToSpring();
}
}

,再用容器的getBean(“”)来得到service,这样,是spring容器就把之间的关系都注入好了。这是我写过的一个用main方法做测试的例子。真正的测试是不用main方法的,是用专门的测试工具来模拟web程序的。

追问
你的bean.xml里面是这样吗?
我的applicationContext-core.xml中是遍历包

这种情况也怎么处理?
追答
我使用的是spring的注解@service(‘personService’),没有在bean.xml中配置标签,感觉xml配置好麻烦,要是有一万个bean那xml文件都得写多大。
yzyaiweier
2013-05-20 · TA获得超过347个赞
知道小有建树答主
回答量:185
采纳率:100%
帮助的人:94万
展开全部
你这是spring管理bean类,如果直接main方法调用的话,也需要把dao new出来,然后调用service的set方法手动注入进去
追问
我的dao接口是IXxxDao.class,实例化是通过spring托管XxxDao.xml进行注入的。
main中如何new dao?
追答
2楼的那个简单些,实例化spring容器,通过getBean方法获取service,这样里面的属性都注入进去了  一段时间没摸spring 了,有点忘了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式