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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了独立的main方法调用Spring MVC框架中的service相关的知识,希望对你有一定的参考价值。

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的注入?

这个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文件都得写多大。

参考技术A 你这是spring管理bean类,如果直接main方法调用的话,也需要把dao new出来,然后调用service的set方法手动注入进去追问

我的dao接口是IXxxDao.class,实例化是通过spring托管XxxDao.xml进行注入的。
main中如何new dao?

追答

2楼的那个简单些,实例化spring容器,通过getBean方法获取service,这样里面的属性都注入进去了 一段时间没摸spring 了,有点忘了

java springmvc项目 iframe执行方法多次怎么办

jsp中使用iframe调用controller方法,结果发现该方法被执行多次,这是怎么回事,怎么解决啊
我用a标签都没问题,证明方法是对的

你用a标签什么都没有证明,被反复调用,基本就是页面多次发起请求。导致iframe一次又一次请求。而使用a标签,一次请求就页面迁移了,当然就不会有问题了。 参考技术A 你好,我也遇到这个问题,请问你解决了吗 参考技术B 嵌套了吧 可能里面的iframe 调用了外面的 iframe

以上是关于独立的main方法调用Spring MVC框架中的service的主要内容,如果未能解决你的问题,请参考以下文章

Spring和MVC正确的项目结构

手写Spring MVC框架 实现简易版mvc框架

springmvc中的newhashmap作用

为啥每次调用 Spring MVC 服务中的简单方法都比静态方法慢?

手写一个迷你版Spring MVC框架

spring mvc中的单元测试