dubbo-spring-boot-starter использует Dubbo в стиле Spring Boot. Это основано на версии Dubbo 2.5.3 и Spring Boot 1.4.1.RELEASE. Документация: Spring Boot с Dubbo
Вы можете развернуть свойства Dubbo в конфигурационном файле Spring Boot — application.properties/yml Пример:
dubbo:
application:
name: lizo
registry:
address: multicast://224.5.6.7:1234
protocol:
name: dubbo
port: 8080
При запуске приложения используйте аннотацию @EnableDubbo с бином @Configuration, как показано ниже:
@SpringBootApplication
@EnableDubbo(basePackages = "com.alibaba.dubbo")
public class Provider {
public static void main(String[] args) throws InterruptedException {
ApplicationContext ctx = new SpringApplicationBuilder()
.sources(Provider.class)
.web(false)
.run(args);
new CountDownLatch(1).await();
}
}
Затем вы сможете использовать com.alibaba.dubbo.config.annotation.Service и com.alibaba.dubbo.config.annotation.Reference на бинах провайдера и потребителя соответственно.
public interface AddService {
int add(int a, int b);
}
@Service
public class AddServiceImpl implements AddService {
@Override
public int add(int a, int b) {
return a + b;
}
}
@Component
public class ConsumerAction {
@Reference
private AddService addService;
public void add(int a, int b) {
System.out.println("ret = " + addService.add(a, b));
}
}
Подробнее см. демонстрационное приложение Документация Dubbo: http://dubbo.io/
Вы можете определить фильтр Dubbo как бин Spring, который расширяет AbstractDubboProviderFilterSupport или AbstractDubboConsumerFilterSupport
@Bean
ProviderFilter consumerFilter() {
return new ProviderFilter();
}
``````java
static class ProviderFilter extends AbstractDubboProviderFilterSupport {
public Result invoke(Invoker<?> invoker, Invocation invocation) {
System.out.println("ProviderFilter");
return invoker.invoke(invocation);
}
}
Если вам требуются более сложные настройки, вы можете использовать оригинальную аннотацию фильтра Dubbo @activate
с бином Spring, который расширяет AbstractDubboFilterSupport
.
@Bean
CustomFilter customFilter(){
return new CustomFilter();
}
@Activate(group = Constants.PROVIDER)
static class CustomFilter extends AbstractDubboFilterSupport {
public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
System.out.println("CustomFilter");
return invoker.invoke(invocation);
}
public Filter getDefaultExtension() {
return this;
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )