1.Dubbo中的Customer怎么获取了注册中心的服务呢?
(1)要在pom文件中导入接口依赖
(2)在配置文件中指定服务中心的ip地址
(3)使用的dubbo自己的注解向服务中心中获取服务,并且将获取的对象放入到了Spring中
@Reference(interfaceClass = BidInfoService.class,version = "1.0.0",check = false)
private BidInfoService bidInfoService;
2.Dubbo的项目是怎么实现的呢?
(1)在linux中开启zookeeper服务
(2)写interface项目,注意这个项目没有配置文件,所以就没有向服务中心中注册。
(3)写servece项目
- pom文件导入接口依赖
- 配置文件指定注册中心,并声名此服务为提供者spring.dubbo.server=true
- 使用dubbo独有的注解向服务中心注册服务,注意这个注解并不是创建一个实体类放到spring容器中,想要放入spring容器我们要使用@Componet注解
(4)写Customer项目,获取服务
3.扩展@Component, @Repository, @Service的区别
注解 | 含义 |
---|---|
@Component | 最普通的组件,可以被注入到spring容器进行管理 |
@Repository | 作用于持久层 |
@Service | 作用于业务逻辑层 |
@Controller | 作用于表现层(spring-mvc的注解) |
@Component
,@Service
,@Controller
,@Repository
是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理@Component
是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能@Repository
注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。@Controller
层是spring-mvc的注解,具有将请求进行转发,重定向的功能。@Service
层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发。