使用自定义配置文件给user对象注入属性值,在测试类输出结果。 user基本信息: userid用户号(int)、username用户名(string)、用户商品goods(数组)、用户地址address(实体类型:省province、市city)
时间: 2024-09-12 22:15:52 浏览: 69
在Java中,可以使用Spring框架结合自定义配置文件来给User对象注入属性值。通常使用`@Value`注解或`@ConfigurationProperties`注解来实现这一功能。下面是一个简单的示例来说明如何通过配置文件给User对象注入属性值,并在测试类中输出结果。
首先,定义User对象的基本信息:
```java
public class User {
private int userid;
private String username;
private String[] goods;
private Address address;
// 省略getter和setter方法...
}
public class Address {
private String province;
private String city;
// 省略getter和setter方法...
}
```
接下来,可以使用`@ConfigurationProperties`注解来将配置文件中的属性值绑定到User对象的属性上。首先需要在Spring Boot应用中添加`spring-boot-configuration-processor`依赖以启用配置处理器。
在`application.yml`或`application.properties`中添加以下配置:
```yaml
# application.yml
user:
userid: 1
username: "张三"
goods:
- "商品1"
- "商品2"
address:
province: "浙江省"
city: "杭州市"
```
然后,创建一个配置类来绑定配置文件中的属性:
```java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "user")
public class UserProperties {
private int userid;
private String username;
private String[] goods;
private Address address;
// 省略getter和setter方法...
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
// 其他属性的getter和setter方法...
}
```
最后,创建一个测试类来输出User对象的属性值:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application implements CommandLineRunner {
@Autowired
private UserProperties userProperties;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) throws Exception {
System.out.println("User ID: " + userProperties.getUserId());
System.out.println("Username: " + userProperties.getUsername());
System.out.println("Goods: " + Arrays.toString(userProperties.getGoods()));
System.out.println("Province: " + userProperties.getAddress().getProvince());
System.out.println("City: " + userProperties.getAddress().getCity());
}
}
```
当运行这个测试类时,它会读取配置文件中的属性值,并输出到控制台。
阅读全文
相关推荐







