加載一個
xml
<context:property-placeholder ignore-unresolvable="true" location="classpath:abc.properties"/>
java
@PropertySource("classpath:app.properties")
加載多個
xml
<context:property-placeholder location="classpath:/prop/*.properties" ignore-resource-not-found="true"/> <context:property-placeholderlocation="classpath:a.properties,classpath:b.properties" /> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:/prop/a.properties</value> <value>classpath:/prop/b.properties</value> <value>classpath:/prop/c.properties</value> </list> </property> <property name="ignoreResourceNotFound" value="true"/> </bean>
java
@PropertySources({ @PropertySource(value = "classpath:/prop/a.properties", ignoreResourceNotFound = true), @PropertySource(value = "classpath:/prop/b.properties", ignoreResourceNotFound = true), @PropertySource(value = "classpath:/prop/c.properties", ignoreResourceNotFound = true) })
取值
xml
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="driverClass" value="#{jdbc.driverClass}" /> <property name="jdbcUrl" value="#{jdbc.jdbcUrl}" /> <property name="user" value="#{jdbc.user}" /> <property name="password" value="#{jdbc.password}" /> </bean> <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml"/> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${catalina.base:-.}/logs/app.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> <charset>UTF-8</charset> </encoder> </appender> <root level="DEBUG"> <appender-ref ref="CONSOLE"/> </root> <root level="INFO"> <appender-ref ref="FILE"/> </root> </configuration>
java
/** * @Value 賦值; * 1、基本數值 * 2、可以寫 SpEL; #{} * 3、可以寫 ${};取出配置文件【properties】中的值(在運行環境變量里面的值) */ @Value("#{jdbc.url}") private String url; @Value("#{jdbc}") public void setJdbcConf(Properties jdbc){ url= sys.getProperty("url"); } @Value("張三") private String name; @Value("#{20-2}") private Integer age; @Value("${people.nickName}") private String nickName; @Value("${db.driver:com.microsoft.sqlserver.jdbc.SQLServerDriver}") private String driver; public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(PropertyValuesConfig.class); printBeans(applicationContext); People person = (People) applicationContext.getBean("people"); System.out.println(person); Environment environment = applicationContext.getEnvironment(); String property = environment.getProperty("people.nickName"); System.out.println(property); ((AnnotationConfigApplicationContext) applicationContext).close(); } private static void printBeans(ApplicationContext applicationContext) { // 打印 IOC 容器中所有 bean 的名稱 String[] definitionNames = applicationContext.getBeanDefinitionNames(); for (String name : definitionNames) { System.out.println(name); } System.out.println("==================================="); }