尝试用单元测试做spring注入调用service

尝试用单元测试做spring注入调用service


public class GoodsCategoryServiceImplTest extends TestCase{


    public ApplicationContext  context=null;
    
    protected void setUp() throws Exception {
     String[] files={"appContext-core.xml","appContext-memcached.xml","appContext-mvc.xml"};
     context=(ApplicationContext)new ClassPathXmlApplicationContext(files);
    
    }
public void test(){
GoodsCategoryService goodsCategoryService=(GoodsCategoryService) context.getBean("goodsCategoryService");
System.out.println(goodsCategoryService.getAll(new HashMap()).size());
}


}



      本文转自yjflinchong 51CTO博客,原文链接:http://blog.51cto.com/yjflinchong/1165011,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 的方法,具体的实现方式是什么? Spring的IOC容器可以通过注解或者XML配置文件将多个Service注入到相应的Controller中,然后我们可以通过在Controller中声明一个似于Map<String, Object>的参数,其中键为Service的Bean的名称,值为相应的参数。在调用Controller中的相应方法时,Spring会根据参数名自动注入相应的Service Bean,并调用对应的方法。这种方式称为基于参数名称的自动装配或基于参数的装配。 ### 回答2: 在Spring中,我们可以通过参数名字调用不同的Service。这种方式称为"通过参数名字自动装配"或者"通过参数名字调用不同Service"。 假设我们有两个Service分别为UserService和OrderService。在使用这两个Service的时候,我们可以在方法的参数中直接声明它们的变量名。 例如,假设我们有一个名为processData的方法,同时需要使用到UserService和OrderService。我们可以按照以下方式编写代码: ``` @Service public class DataProcessingService { @Autowired private UserService userService; @Autowired private OrderService orderService; public void processData() { // 调用UserService的方法 userService.doSomething(); // 调用OrderService的方法 orderService.doSomethingElse(); } } ``` 在上述代码中,我们通过在方法中声明UserService和OrderService的变量名,Spring会自动根据这些变量名来匹配相应的Service并进行装配。这样,我们就可以直接调用这些Service的方法。 需要注意的是,参数名字必须与对应的Service的变量名字保持一致。否则,Spring将无法正确匹配并装配相应的Service。 通过参数名字调用不同的Service可以简化我们的代码,提高代码的可读性和可维护性。同时,这种方式也能够更加灵活地处理不同Service之间的依赖关系。 ### 回答3: 在Spring框架中,可以通过参数名字来调用不同的Service服务。在使用Spring进行Bean的注入时,可以通过在参数前加上`@Qualifier`注解并指定该注解的值来选择所需要的具体的Service实现。 首先,在我们的Service接口中,我们可以使用`@Service`注解来标识该接口是一个Service组件,例如: ```java @Service public interface MyService { void doSomething(); } ``` 然后,在具体的实现中使用`@Qualifier`注解来标识该实现的名字,例如: ```java @Service @Qualifier("myServiceImpl1") public class MyServiceImpl1 implements MyService { @Override public void doSomething() { System.out.println("Service1: doSomething()"); } } @Service @Qualifier("myServiceImpl2") public class MyServiceImpl2 implements MyService { @Override public void doSomething() { System.out.println("Service2: doSomething()"); } } ``` 最后,在我们的Service调用方法中,可以通过参数名字来选择需要的Service实现,例如: ```java @Service public class MyServiceCaller { @Autowired public MyServiceCaller(@Qualifier("myServiceImpl1") MyService service) { service.doSomething(); } } ``` 这样,当我们创建一个`MyServiceCaller`的实例时,会自动注入名为`"myServiceImpl1"`的`MyService`实现,并执行其`doSomething`方法。如果需要调用其他的Service实现,只需要修改`MyServiceCaller`中的`@Qualifier`值,即可动态切换调用不同的Service。 这是Spring框架灵活的一种注入方式,可以在项目中根据不同的业务需求使用不同的Service实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值