读取配置文件方式
方式一:XML
配置方式一:
<!--引入外部属性文件1-->
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="locations" value="classpath:jdbc.properties"/>
</bean>
配置方式一:
<!--引入外部属性文件2-->
<context:property-placeholder location="classpath:jdbc.properties"/>
配置文件:
prop.driverClass=com.mysql.jdbc.Driver
prop.url=jdbc:mysql://localhost:3306/userDb
prop.userName=root
prop.password=abc123
\
动态取值:
<!--配置连接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${prop.url}"/>
<property name="username" value="${prop.userName}"/>
<property name="password" value="${prop.password}"/>
<property name="driverClassName" value="${prop.driverClass}"/>
</bean>
方式一:@ConfigurationProperties(prefix = "xxx")+@Component
@ConfigurationProperties(prefix = "person")
@Component
@Data
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
}
配置文件:application.properties
person.user-name=zhangsan
person.boss=true
person.birth=2019/12/9
person.age=18
person.pet.name=阿狗
person.pet.weight=99.99
person.interests=篮球,足球
person.animal=阿猫,阿狗
person.score.english=80
person.score.math=80
person.salarys=9999.98,9999.99
person.all-pets.sick[0].name=阿狗;
person.all-pets.sick[0].weight=99.99
person.all-pets.health[0].name=阿花
person.all-pets.health[1].name=阿明
person.all-pets.health[0].weight=199.99
person.all-pets.health[1].weight=200
#https://blog.csdn.net/qq_35754073/article/details/136606186
测试:
@Autowired
Person person;
@Test
void test() {
System.out.println(person);
}
方式三:@ConfigurationProperties+@EnableConfigurationProperties(xxx.class)
@ConfigurationProperties(prefix = "person")
@Data
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
}
@EnableConfigurationProperties(Person.class)
@Configuration
public class MyConfig {
@Bean
public Person person(Person person) {
System.out.println(person);
return person;
}
}
测试:
@Autowired
MyConfig myConfig;
方式四:@Value+application.properties
配置文件:
myconfig.name=1111
myconfig.pwd=2222
测试:application.properties
@Value("${myconfig.name}")
private String name;
@Value("${myconfig.pwd}")
private String pwd;
@Test
void test2() {
System.out.println(name);
System.out.println(pwd);
}
方式四:@Value+xxx.properties自定义配置文件
配置:other.properties
other.name=3333
other.pwd=4444
@PropertySources({
@PropertySource("classpath:other.properties")
})
@Configuration
public class OtherConfig {
测试:
@Value("${other.name}")
private String otherName;
@Value("${other.pwd}")
private String otherPwd;
@Test
void test3() {
System.out.println(otherName);
System.out.println(otherPwd);
}