Se alguns parâmetros no projeto precisarem ser modificados com frequência ou precisarem ser modificados posteriormente, é melhor colocar esses parâmetros no arquivo de propriedades e ler a configuração nas propriedades no código -fonte. Dessa forma, apenas o arquivo de propriedades precisa ser modificado posteriormente e não há necessidade de modificar o código -fonte, o que é mais conveniente. Isso também pode ser feito na primavera e a primavera tem duas maneiras de carregar arquivos de propriedades: com base no método XML e com base no método de anotação . A seguir, são os dois métodos.
1. Carregar o arquivo de propriedades através do XML
Vamos tomar a Spring Instantied DataSource como exemplo. Geralmente configuramos o seguinte no arquivo beans.xml:
<!-com.mchange.v2.c3p0.combopooledDataSource A classe está no pacote com.mchange.v2.c3p0 de c3p0-0.9.5.1.jar pacote-> <bEan id = "DataSource"> <nome da propriedade "driver" = "com.mysql.jdbc.niver"> value = "jdbc: mysql: // localhost: 3306/shop"/> <propriedades name = "user" value = "root"/> <propriedade name = "senha" value = "root"/> </i bean>
Agora, se quisermos alterar o DataSource, precisamos modificar esses códigos de origem, mas se usarmos arquivos de propriedades, precisamos apenas modificar o código -fonte e não nos importamos com o código -fonte. Então, como fazer isso?
Existe um <context:property-placeholder location=""/> na primavera, que pode ser usada para carregar arquivos de configuração de propriedades. Localização é o caminho para o arquivo de configuração. Agora, criamos um novo arquivo Conn.Properties sob o SRC do diretório do projeto e escrevemos a configuração acima do DataSource:
DataSource = com.mchange.v2.c3p0.combopooledDataSource driverclass = com.mysql.jdbc.driver jdbcurl = jdbc/: mysql/: // lochost/: 3306/shop user = root senha = raiz
Agora você só precisa fazer as seguintes modificações em beans.xml:
<Contexto: Property-PlaceLitder Location = "ClassPath: Conn.Properties"/> <!-Carregando o arquivo de configuração-> <!-com.mchange.v2.c3p0.comBOPOOLEDDataSource Classe está no com.mchange.v2.c3p0 pacote de c3p0s.9.5.1.jar <jar-> Conn.Properties na startup -> <propriedade name = "driverclass" value = "$ {driverclass}" /> <propriedade name = "jdbcurl" value = "$ {jdbcurl}" /> <nome da propriedade "" JDBCURL "VALOR =" $ {JDBCURL} " /> /> <weead)") Value = "$ {senha}"/> </i bean> <Contexto: Property-placeholder Location = ""/> Tags também podem ser substituídos pelas seguintes tags <ipean>. Estamos mais familiarizados com as tags <Bean> e somos mais legíveis: <!-equivalente à configuração acima, a seguir é mais fácil de entender-> <Bean> <propriedades name = "Localizações"> <!-Existe uma propriedade Locations: a classe PROPROPTYPLERCONFIGURER, que recebe uma matriz, que podem atribuir múltiplos arquivos de propriedades- </ray> </propriedade> </i bean> Embora pareça ser tão conciso quanto o acima <context:property-placeholder location=""/> , é mais claro. Recomenda -se usar o seguinte. No entanto, isso é limitado ao XML, ou seja, use ${key} para obter o valor no arquivo de configuração no beans.xml.
2. Arquivo de propriedades de carga através da anotação
Outra maneira é usar a anotação @Value para carregar os valores no arquivo de configuração por meio da anotação.
Vamos dar um exemplo: se queremos obter o caminho absoluto para um determinado arquivo no programa, pensaremos naturalmente que não podemos escrevê -lo morto no programa, também podemos desinstalar o arquivo de propriedades. Ou crie um novo arquivo public.properties no diretório SRC, assumindo que um registro seja escrito nele:
filepath = e/: //web//apache-tomcat-8.0.26//webapps//e_shop//image
Se você deseja obter esse filepath por meio de anotações no código Java, você deve primeiro configurar o método de anotação no arquivo beans.xml:
<!-O segundo método é usar a injeção de anotação, que é usada principalmente no código Java para injetar o valor do valor correspondente no arquivo de propriedades usando anotações-> <bean id = "prop"> <propriedades name = "locations"> <!-esta é a classe PropertiesFactoryBean. Ele também possui uma propriedade de locais e também recebe uma matriz, assim como o acima <Ray> <Value> ClassPath: public.properties </value> </ray> </Property> </bean>
Agora podemos usar anotações no código Java para obter o valor do FilePath:
@Component ("FileUpload") Classe pública FileUploadutil implementa FileUpload {private string filepath; @Value ("#{prop.filepath}") //@valor significa encontrar o feijão com id = "prop" no arquivo beans.xml. Ele lê o arquivo de configuração de propriedades através da anotação e, em seguida, lê o valor do valor correspondente de key = filepath no arquivo de configuração correspondente public void setFilePath (string filepath) {System.out.println (filepath); this.FilePath = filepath; }Observe que deve haver um método definido a ser injetado e a anotação pode ser gravada no método definido. No método setFilePath, o filepath é impresso através do console para observar se o console tem saída ao iniciar o TomCat. Nesse caso, significa que a primavera carregou o FilePath quando é iniciado. Vamos dar uma olhada nas informações de inicialização do console:
Os acima são de duas maneiras pelas quais o Spring carrega arquivos de configuração de propriedades. De fato, a classe PropertyPlaceHolderConfigurer acima com base no método XML e na classe PropertiesFactoryBean aqui com base no método de anotação herdam o PropertiesLoaderSupport e são usados para carregar o arquivo de configuração de propriedades.
Resumir
O exposto acima é uma explicação detalhada dos dois exemplos de arquivos de propriedades de carregamento de mola introduzidos pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!