Używam Spring do obsługi wywołań RMI do zdalnego serwera. Jest to łatwe do skonstruowania kontekst aplikacji i uzyskać fasoli dla zdalnych wywołań od wewnątrz klienta:Przekazywanie właściwości do kontekstu Spring
ApplicationContext context = new ApplicationContext("classpath:context.xml");
MyService myService = (MyService) context.getBean("myService ");
Jednak nie widzę w prosty sposób przekazać właściwości do konfiguracji. Na przykład, jeśli chcę określić nazwę hosta zdalnego serwera w czasie wykonywania w kliencie.
bym najlepiej mieć wpis w kontekście wiosennego takiego:
<bean id="myService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://${webServer.host}:80/MyService"/>
<property name="serviceInterface" value="com.foo.MyService"/>
</bean>
i przekazać właściwości do kontekstu z klienta jako parametr.
mogę użyć PropertyPlaceholderConfigurer w kontekście zastąpienia tych właściwości, ale o ile mogę powiedzieć to działa tylko dla właściwości odczytanych z pliku.
mam implementację, która rozwiązuje ten (dodane jako odpowiedź), ale szukam standardowej implementacji wiosennym uniknąć toczenia moje własne. Czy istnieje jeszcze inny konfigurator Spring (lub cokolwiek innego), który pomoże zainicjować konfigurację, czy lepiej będzie, jeśli spojrzę na konfigurację java, aby to osiągnąć?
Gdzie indziej można by przechowywać swoje właściwości? –
klient może połączyć się z dowolnym serwerem, np. użytkownik może wpisać nazwę hosta w polu tekstowym. Więc nie jest ustalany w czasie kompilacji. –