Solon v3.3.0

nami - 使用注册与发现服务(也可本地配置)

</> markdown

想要进一步自动化,需要使用注册与发现服务,且与Ico/Aop框架绑定。此例与 Solon 绑定使用。

1、接口申明

将 @NamiClient 加在接口上,申明连接服务名及父级路径。在别处注入时,可以省掉这部分

@NamiClient(name="somplex-api", path="/ComplexModelService/")
public interface IComplexModelService {
    //持久化
    void save(ComplexModel model);

    //读取
    ComplexModel read(Integer modelId);
}

2、使用分布式注册与发现服务

引入 water-solon-cloud-plugin 插件依赖(或者别的注册与发现服务)。修改应用配置:

server.port: 9001

solon.app:
  group: "demo"
  name: "demo-app"
  
solon.cloud.water:
  server: "waterapi:9371"
@Maping("user")
@Controller
public class UserController {
    //注入时,会自动继承在接口上申明的 @NamiClient 信息 //其它,如何构建都是自动
    @NamiClient
    IComplexModelService complexModelService;
    
    @Post
    @Mapping("test")
    public void test(User user){
        ComplexModel tmp = service.read(1);
        service.save(tmp);
    }
}

3、使用本地发布配置

引入 solon-cloud 插件依赖即可。上面的配置可调配为:

server.port: 9001

solon.app:
  group: "demo"
  name: "demo-app"
  
solon.cloud.local:
  discovery:
    service:
      somplex-api:
        - "http://localhost:8080"
      demo:
        - "http://localhost:8080"

通过配置,指定服务名的路由地址。