English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Detalhes da leitura e uso do arquivo de propriedades properties no Spring

Detalhes da leitura e uso do arquivo de propriedades properties no Spring

Em projetos reais, geralmente colocamos algumas informações personalizáveis e configuráveis em arquivos de propriedades (como informações de conexão de banco de dados, configurações de envio de e-mail, etc.), facilitando a gestão de configurações unificadas. No exemplo, informações de propriedades a serem configuradas são colocadas no arquivo de propriedades/WEB-INF/em configInfo.properties.

Alguns dos detalhes de configuração (relacionados ao envio de e-mail):

#Configurações relacionadas ao envio de e-mail
email.host = smtp.163.com
email.port = xxx
email.username = xxx
email.password = xxx
email.sendFrom = [email protected]

No início do carregamento do container Spring, usa o bean integrado para carregar as informações do arquivo de propriedades, adicione o seguinte ao bean.xml:

Código XML

<!-- carregador de propriedades do spring, carrega as propriedades do arquivo properties -->
 <bean id="propertyConfigurer"
 class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 <property name="location">
  <value>/WEB-INF/configInfo.properties</value>
 </property>
 <property name="fileEncoding" value="utf-8" />
 </bean>

Após a carga das informações de propriedades, uma forma de uso é referenciar diretamente o valor do key da informação de propriedade em outras definições de bean, como a configuração do bean do enviador de e-mail:

Código XML

<!-- envio de e-mail -->
 <bean id="mailSender"
 class="org.springframework.mail.javamail.JavaMailSenderImpl">
 <property name="host">
  <value>${email.host}</value>
 </property>
 <property name="port">
  <value>${email.port}</value>
 </property>
 <property name="username">
  <value>${email.username}</value>
 </property>
 <property name="password">
  <value>${email.password}</value>
 </property>
 <property name="javaMailProperties">
  <props>
  <prop key="mail.smtp.auth">true</prop>
  <prop key="sendFrom">${email.sendFrom}</prop>
  </props>
 </property>
 </bean>

Outra forma de uso é obter informações de configuração de atributos no código, pode ser definido um javabean: ConfigInfo.java, usar anotações para injetar informações de atributos necessárias no código; se houver informações como essas no arquivo de propriedades que precisam ser obtidas e usadas no código:

Código Java

#Gera o caminho de salvamento do arquivo
file.savePath = D:/test/
#Gera o caminho de backup do arquivo, move o arquivo correspondente para esse diretório após o uso
file.backupPath = D:/backup test/

Código correspondente em ConfigInfo.java:

Código Java

@Component("configInfo")
public class ConfigInfo {
  @Value("${file.savePath}")
  private String fileSavePath;
  @Value("${file.backupPath}")
  private String fileBakPath;
  public String getFileSavePath() {
    return fileSavePath;
  }
  public String getFileBakPath() {
    return fileBakPath;
  }  
}

Classe bo de negócios usa anotações para injetar o objeto ConfigInfo:

Código Java

@Autowired
private ConfigInfo configInfo;

É necessário adicionar o scanner de componentes no bean.xml, para a injeção automática de anotações:

Código XML

<context:component-scan base-package="com.my.model" />

(O pacote model acima contém a classe ConfigInfo).

Obtém informações de atributos correspondentes através do método get, a vantagem é que é conveniente usar código, a desvantagem é que, se precisar usar novas informações de atributos no código, é necessário adicionar ou modificar o ConfigInfo.java correspondente.

Agradecemos a leitura, esperamos que ajude a todos, obrigado pelo apoio ao site!

Você também pode gostar