基于SSM框架的dubbo的分布式框架搭建——mybatis,spring,dubbo整合

 

使用dubbo的service注解可以注册服务到zookeeper,使用dubbo的refrence注解,可以把远程调用的服务注入实例。

也就是说:当项目的service需要暴露时,就使用dubbo的service,否则就使用spring的service。当然喽,使用不同的service就得使用不同的扫描包配置。dubbo的service对应dubbo的扫描包方式,spring的service对应spring的扫描包方式。

当项目的service不需要暴露时,就使用spring的service注解。需要引用dubbo暴露的服务时,使用dubbo的refrence注解。

 

下面就是代码和配置文件了,看的人,还望给点建议。

配置文件结构:

基于SSM框架的dubbo的分布式框架搭建——mybatis,spring,dubbo整合_第1张图片基于SSM框架的dubbo的分布式框架搭建——mybatis,spring,dubbo整合_第2张图片

 

spring-mybatis配置




    
    
    
    
        
        
        
        
        
    

    
        
        
        
    
    
        
        
    


 

 

mybatis-config配置




    
        
    
    
        
    

spring-context配置



    
    

dubbo-previder配置




    
    
    
    
    
    
    
    
    
    
    

 

消费者项目配置

 




    
    
    
    
    
    
    
    
    
    
    
    

消费者的spring-context配置





    
    

 

提供者测试类

@com.alibaba.dubbo.config.annotation.Service
public class DemoServiceImpl implements IDemoService {

    @Autowired
    private UserMapper userMapper;
    @Override
    public DemoRemoteModel findDemoModel() {
        DemoRemoteModel model = new DemoRemoteModel();
        model.setId(1L);
        UserEntity userEntity = userMapper.findByPrimaryKey(1L);
        model.setUserName(userEntity.getUserName());
        model.setId(userEntity.getId());
        return model;
    }
}
public class provider {
    public static void main(String[] args)throws Exception {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
        context.start();
        System.out.println("提供者启动成功!");
        System.in.read();
    }
}

消费者测试类

public class consumer {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context =
                new ClassPathXmlApplicationContext("classpath:spring/spring-context.xml");
        CourseService iDemoService = context.getBean(CourseService.class);
        DemoRemoteModel model = iDemoService.findDemoModel();
        System.out.println(model.getUserName());
    }
}
@org.springframework.stereotype.Service
public class CourseServiceImpl implements CourseService {

    @com.alibaba.dubbo.config.annotation.Reference
    private IDemoService iDemoService;
    @Override
    public CourseEntity findCourseByPrimeryKey(Long id) {
        return null;
    }

    @Override
    public DemoRemoteModel findDemoModel() {
       return iDemoService.findDemoModel();
    }
}


 

 

你可能感兴趣的:(基于SSM框架的dubbo的分布式框架搭建——mybatis,spring,dubbo整合)