em Spring.config, posso definir objeto do tipo string?
-
03-07-2019 - |
Pergunta
Posso fazer algo como isto:
<object id="mydb" type="string">
<value>"blah"</value> <-- note that <value> tag does not really exist
</object>
Assim que eu poderia usá-lo mais tarde, como assim:
<object id="Someobject" type="Sometype">
<property name="ConnectionString" ref="mydb"/>
</object>
EDIT: esta foi a solução SpringFramework.NET que eu estava procurando. Looks como PropertyPlaceholderConfigurer existe lá também. Obrigado a todos.
Solução
Usar Primavera built-in PropertyPlaceholdConfigurer :
<bean id="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
<property name="location" value="classpath*:/application.properties"/>
</bean>
<bean id="Someobject" class="somepackage.Sometype">
<property name="connectionString" value="${mydb}"/>
</bean>
Configuração SYSTEM_PROPERTIES_MODE_OVERRIDE
permite substituir a propriedade através da linha de comando.
Outras dicas
Use espaços reservados por exemplo, $ {mágica} e definir a chave / valor em um arquivo de propriedades, juntamente com um pós-processador. Google para processador primavera pós espaço reservado ...
Não vejo qualquer vantagem para o seu caminho em tudo. É tudo ainda apenas configuração.
Às vezes as pessoas exteriorizam cadeias de conexão de banco de dados para um arquivo .properties e chegar a eles dessa forma. Eu acho que faz mais sentido do que a sua proposta.