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