public ApplicationConfig build() {
        ApplicationConfig config = new ApplicationConfig();
        super.build(config);

        config.setName(name);
        config.setMetadataType(metadata);
        config.setVersion(this.version);
        config.setOwner(this.owner);
        config.setOrganization(this.organization);
        config.setArchitecture(this.architecture);
        config.setEnvironment(this.environment);
        config.setCompiler(this.compiler);
        config.setLogger(this.logger);
        config.setRegistries(this.registries);
        config.setRegistryIds(this.registryIds);
        config.setMonitor(this.monitor);
        config.setDefault(this.isDefault);
        config.setDumpDirectory(this.dumpDirectory);
        config.setQosEnable(this.qosEnable);
        config.setQosPort(this.qosPort);
        config.setQosAcceptForeignIp(this.qosAcceptForeignIp);
        config.setMetadataServicePort(this.metadataServicePort);
        config.setLivenessProbe(this.livenessProbe);
        config.setReadinessProbe(this.readinessProbe);
        config.setStartupProbe(this.startupProbe);
        config.setParameters(this.parameters);
        if (!StringUtils.isEmpty(shutwait)) {
            config.setShutwait(shutwait);
        }
        return config;
    }
@Test
    void build() {
        MonitorConfig monitor = new MonitorConfig("monitor-addr");
        RegistryConfig registry = new RegistryConfig();

        ApplicationBuilder builder = new ApplicationBuilder();
        builder.id("id")
                .name("name")
                .version("version")
                .owner("owner")
                .organization("organization")
                .architecture("architecture")
                .environment("develop")
                .compiler("compiler")
                .logger("log4j")
                .monitor(monitor)
                .isDefault(false)
                .dumpDirectory("dumpDirectory")
                .qosEnable(true)
                .qosPort(8080)
                .qosAcceptForeignIp(false)
                .shutwait("shutwait")
                .registryIds("registryIds")
                .addRegistry(registry)
                .appendParameter("default.num", "one")
                .metadataServicePort(12345)
                .livenessProbe("liveness")
                .readinessProbe("readiness")
                .startupProbe("startup");

        ApplicationConfig config = builder.build();
        ApplicationConfig config2 = builder.build();

        Assertions.assertEquals("id", config.getId());
        Assertions.assertEquals("name", config.getName());
        Assertions.assertEquals("version", config.getVersion());
        Assertions.assertEquals("owner", config.getOwner());
        Assertions.assertEquals("organization", config.getOrganization());
        Assertions.assertEquals("architecture", config.getArchitecture());
        Assertions.assertEquals("develop", config.getEnvironment());
        Assertions.assertEquals("compiler", config.getCompiler());
        Assertions.assertEquals("log4j", config.getLogger());
        Assertions.assertSame(monitor, config.getMonitor());
        Assertions.assertFalse(config.isDefault());
        Assertions.assertEquals("dumpDirectory", config.getDumpDirectory());
        Assertions.assertTrue(config.getQosEnable());
        Assertions.assertEquals(8080, config.getQosPort());
        Assertions.assertFalse(config.getQosAcceptForeignIp());
        Assertions.assertEquals("shutwait", config.getShutwait());
        Assertions.assertEquals("registryIds", config.getRegistryIds());
        Assertions.assertSame(registry, config.getRegistry());
        Assertions.assertTrue(config.getParameters().containsKey("default.num"));
        Assertions.assertEquals("one", config.getParameters().get("default.num"));
        Assertions.assertEquals(12345, config.getMetadataServicePort());
        Assertions.assertEquals("liveness", config.getLivenessProbe());
        Assertions.assertEquals("readiness", config.getReadinessProbe());
        Assertions.assertEquals("startup", config.getStartupProbe());

        Assertions.assertNotSame(config, config2);
    }