dubbo service注解用法_dubbo学习(四)配置dubbo 注解方式配置

provider(生产者)

service注解暴露服务

/*** 用户管理实现类*/@Service//用的dubbo的注解,表明这是一个分布式服务

@Component //注册为spring bean

public class UserServiceImpl implementsUserService {

@AutowiredprivateUserMapper userMapper;

@Overridepublic ListlistUser() {

List result = new ArrayList<>();

List list =userMapper.listUser();for(User user : list) {

UserVO vo= newUserVO();

BeanUtils.copyProperties(user, vo);

result.add(vo);

}returnresult;

}

}

PS:@Service注解很容易用错,目前有两个包有@Service注解:

com.alibaba.dubbo.config.annotation.Service:用于标注对外暴露的dubbo接口实现类。

org.springframework.stereotype.Service:用于标注根据业务块分离的Service的实现类,对应的是业务层(如一个dubbo方法可能调用多个业务块的service,这些service的实现类就用Spring的注解)。

PS:若使用的是dubbo的Service注解时,在controller注入的时候,要选择@Reference注解来进行注入。

dubbo配置

在SpringBoot的配置文件application.yml中配置dubbo信息

dubbo:

application:

name: user-service

registry:

address: zookeeper://127.0.0.1:2181

protocol:

port: 20880

name: dubbo

410ba1c540197273c2a2e222f0d4c5e9.png

启动类配置

@SpringBootApplication

@EnableDubbo

@MapperScan(basePackages= "zhbf.user.mapper")//配置mapper扫描的路径(Mybatis的mapper接口)

public classUserBootStarter {public static voidmain(String[] args) {

SpringApplication.run(UserBootStarter.class, args);

System.out.println("==========USER模块启动完成!==========");

}

}

@Configuration:启动类注解。@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan。

@EnableDubbo:开启注解Dubbo功能 ,其中可以加入scanBasePackages属性配置包扫描的路径,用于扫描并注册bean

@MapperScan:指定mybatis的mapper接口存放路径,用于扫描mapper接口并注册

consumer(消费者)

Reference注解引用服务

/*** 用户管理Controller*/@RestController

@RequestMapping(value= "/userManage")public classUserManageController {

@ReferenceprivateUserService userService;/*** 查询用户集合

*@return

*/@RequestMapping("queryListUser")publicString queryListUser() {

List list =userService.listUser();returnlist.toString();

}

}

@Component:(把普通pojo实例化到spring容器中,相当于配置文件中的 ) 泛指各种组件,当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

例:上面的这个例子是引入Component组件的例子,其中base-package表示为需要扫描的所有子包。

@Reference:与@Autowired、@Resource注解功能类似,用于依赖注入,一般注入的是分布式的远程服务的对象,需要dubbo配置使用

dubbo配置

在SpringBoot的配置文件application.yml中配置dubbo信息(这里以application.properties举例)

# dubbo配置

dubbo.application.name=web-service

dubbo.registry.address=zookeeper://127.0.0.1:2181

f3712298a40e5e6ad840b9d395312b2b.png

启动类配置

@SpringBootApplication

@EnableDubbopublic classWebBootStarter {public static voidmain(String[] args) {

SpringApplication.run(WebBootStarter.class, args);

System.out.println("==========WEB模块启动完成!==========");

}

}

PS:@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中。

调用服务

http://localhost:8081/userManage/queryListUser

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值