Saya memiliki aplikasi server boot musim semi di folder src/test saya yang dikonfigurasi untuk dijalankan dengan properti test.properties saya.

Saat ini properti saya terlihat seperti ini:

server.port=9119
server.ssl.enabled=false
logging.config=classpath:logback-spring.xml
logging.file=messages
logging.file.max-size=50MB
logging.level.com.nulogix=DEBUG
billing.engine.address=127.0.0.1
billing.engine.port=9119
billing.engine.api.version=0.97
billing.engine.core.version=0.97
billing.engine.core.name=Patient_Responsibility

Saya ingin menghentikan server.port dan mengarahkan server saya untuk mendapatkan port dari billing.engine.port.

Apakah mungkin untuk mengonfigurasi Spring untuk melakukan ini?

Kelas utama aplikasi pegas saya saat ini terlihat seperti ini

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class MockServerApp {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new SpringApplicationBuilder(MockServerApp.class)       
        .properties("spring.config.name:test")
        .build()
        .run(args);


    }
}
1
Dark Apostle 12 Agustus 2019, 18:45

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan kode ini

@Component
public class ServerPortCustomizer 
  implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {
    @Value("${billing.engine.port}")
    private String SERVERPORTNO;
    @Override
    public void customize(ConfigurableWebServerFactory factory) {
        factory.setPort(SERVERPORTNO);
    }
}

Dan juga ubah application.properties Anda

#server.port=9119
billing.engine.port=9119

Itu bukan kode yang diuji .... Saya menulis kode ini berdasarkan pengetahuan saya

3
Istiaque Hossain 12 Agustus 2019, 15:54