Os desenvolvedores que não entendem as propriedades na primavera podem achar um pouco confusos, principalmente porque existem muitos métodos de configuração e muitos métodos de uso.
Este artigo não é um artigo de análise de princípios ou análise de código -fonte, mas espero que possa ajudar os leitores a entender e usar melhor as propriedades da primavera.
Uso de propriedades
Todos os leitores deste artigo usaram a primavera. Vamos primeiro dar uma olhada em como as propriedades são usadas. Existem vários métodos comumente usados na primavera:
1. Use no arquivo de configuração XML
Ou seja, o valor em $ {} é substituído automaticamente.
<bean id = "xxx"> <propriedade name = "url" value = "$ {javadoop.jdbc.url}" /> </sien>2. Use via injeção @value
@Value ("$ {javadoop.jdbc.url}") private string url;3. Obtenha através do ambiente
Há algumas coisas para prestar atenção neste método. Nem todos os métodos de configuração suportam a obtenção de valores da propriedade através da interface do ambiente. O teste pessoal só pode ser usado ao usar a anotação @PropertySource, caso contrário, você ficará nulo. Quanto a como configurá -lo, falarei sobre isso imediatamente abaixo.
@AutowiredPrivate Ambiente Env
Se estiver registrado no Spring Boot Application.properties, tudo bem.
Configuração de propriedades
Mencionamos anteriormente como usar as propriedades que configuramos, então como configurá -las? A primavera fornece muitos métodos de configuração.
1. Configurar via XML
A seguir, o método de configuração mais usado, e muitos projetos são escritos assim:
<Contexto: Propriedade-Placter Location = "ClassPath: Sys.Properties" />
2. Configurar via @propertySource
A configuração XML anterior é muito comum, mas se você também tiver vontade de eliminar todos os arquivos de configuração XML, use o seguinte método:
@PropertySource ("ClassPath: Sys.Properties")@Classe de ConfigurationPublic Javadoopconfig {}Observe que o @PropertySource deve ser usado com @configuration aqui, para que não entre em detalhes.
3. PropertyPlaceHoldConfigurer
Se os leitores viram isso, não importa se estão surpresos. É assim que foi usado antes da primavera 3.1:
<Bean> <Propriedade name = "Localizações"> <List> <Value> ClassPath: sys.properties </value> </list> </propriedade> <propriedade name = "ignoreunResolVablePlaceholders" Value = "True"/> <!-Algumas propriedades podem ser configuradas aqui-> </ Bean>
Obviamente, também podemos usar a versão de configuração Java correspondente:
@BeanPublic PropertyPlaceHoldConfigurer Propertiess () {PropertyPlaceHoldConfigurer ppc = new PropertificateHolderConfigurer (); Resource [] Resources = new ClassPathResource [] {new ClassPathResource ("sys.properties")}; ppc.setLocações (recursos); ppc.setignoreunResolvable place shols (true); Retornar PPC;}4. PropriedadesourcesplaceholdConfigurer
Quando a primavera 3.1 foi lançada, foi introduzido o PropertySourcesPlaceHoldConfigurer, que é uma nova classe. Observe que há fontes adicionais em nome do PropertyPlaceHoldConfigurer anterior, e o pacote que pertence é diferente. Está no pacote de contexto da primavera.
Não há diferença na configuração:
<Bean> <Propriedade name = "Localizações"> <List> <Value> ClassPath: sys.properties </value> </list> </propriedade> <propriedade name = "ignoreunResolVablePlaceholders" Value = "True"/> <!-Algumas propriedades podem ser configuradas aqui-> </ Bean>
Vamos também ter uma versão de configuração Java:
@BeanPublic PropertySourcesPlateHoldConfigurer Properties () {PropertySourcesPlaceHoldConfigurer PSPC = new PropertySourcesPlaceHoldConfigurer (); Resource [] Resources = new ClassPathResource [] {new ClassPathResource ("sys.properties")}; PSPC.setLocações (recursos); PSPC.setignoreUnResolVablePlace pousous (true); retornar PSPC;}Spring Boot Related
A bota da primavera é realmente uma coisa boa, e é tão bom usá -la fora da caixa. Aqui está uma breve introdução ao conteúdo relevante.
Gere rapidamente um projeto de inicialização da primavera: https://start.spring.io/
Application.Properties
Cada projeto possui um arquivo Application.Properties por padrão. Este arquivo de configuração não precisa ser registrado conforme mencionado anteriormente. A inicialização da primavera nos ajudará a se registrar automaticamente.
Obviamente, talvez você possa alterar o nome, basta especificar o nome do seu arquivo ao iniciar:
java -dspring.config.Location = ClassPath: sys.properties -jar App.jar
aplicação- {Env} .Properties
Para especificar diferentes configurações para diferentes ambientes, usaremos isso.
Por exemplo, as informações de conexão do banco de dados do ambiente de teste e do ambiente de produção são diferentes.
Portanto, com base no Application.properties, também precisamos criar novos aplicativos-dev.properties e aplicativo-prd.properties para configurar informações relacionadas ao ambiente e, em seguida, especificar o ambiente ao iniciar.
java -dspring.profiles.active = prd -jar app.jar
O resultado é que as configurações nos arquivos Application.Properties e Application-Prd.Properties serão registrados. Se houver chaves duplicadas, a prioridade nos arquivos de aplicativos-prd.properties será maior.
@ConfigurationProperties
Esta anotação está disponível apenas na inicialização da primavera.
Mesmo se você não usar essa anotação, poderá ver isso em um projeto de código aberto. Aqui está uma breve introdução.
Vamos dar um exemplo para ser mais intuitivo. Como mencionado anteriormente, preencha as seguintes informações no arquivo de configuração, você pode optar por gravar no aplicativo.properties ou usar o método introduzido na primeira seção.
javadoop.database.url = jdbc: mysql: javadoop.database.username = adminjavadoop.database.password = admin123456
Arquivo Java:
@Configuration@ConfigurationProperties (prefix = "Javadoop.database") Public Class Database {String url; Nome de usuário da string; Senha da string; // getters and setters}Dessa forma, um feijão do banco de dados de tipo é registrado automaticamente no contêiner de mola e as propriedades estão definidas.
Modificar dinamicamente valores de atributo durante a inicialização
Eu não acho que isso precise de muita introdução, e aqueles que usam a bota da primavera devem basicamente saber.
A configuração do atributo possui uma ordem de substituição, ou seja, quando a mesma chave aparecer, o valor prevalecerá.
Parâmetros de inicialização> Application- {Env} .Properties> Application.properties
Inicie os parâmetros de defina dinamicamente as propriedades:
java -djavadoop.database.password = admin4321 -jar app.jar
Além disso, você também pode usar variáveis de ambiente do sistema para definir propriedades, especificar números aleatórios etc., o que é realmente muito flexível, mas é inútil, para que eu não o apresente.
Resumir
Se os leitores desejam ter uma compreensão mais profunda das propriedades da primavera, eles precisam entender o código -fonte relacionado à interface do ambiente de primavera. Os leitores interessados são aconselhados a pesquisar o código -fonte.
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.