2.创建如下类,并通过 application.properties和application.yaml实现属性值注入。 public class Person{ private int id; private int age; private String name; private List<String> hobby; }
时间: 2024-03-24 22:41:56 浏览: 56
好的,我可以回答你的问题并提供代码样例。
首先,我们需要在 application.properties 或 application.yaml 文件中定义属性值,如下所示:
application.properties:
```
person.id=1
person.age=20
person.name=Tom
person.hobby=reading,swimming,traveling
```
application.yaml:
```yaml
person:
id: 1
age: 20
name: Tom
hobby:
- reading
- swimming
- traveling
```
接下来,在 Person 类中添加对应的属性和构造方法,以及使用 @Value 注解进行属性值注入。代码如下:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class Person {
private int id;
private int age;
private String name;
private List<String> hobby;
public Person(@Value("${person.id}") int id,
@Value("${person.age}") int age,
@Value("${person.name}") String name,
@Value("${person.hobby}") List<String> hobby) {
this.id = id;
this.age = age;
this.name = name;
this.hobby = hobby;
}
// getter and setter methods
}
```
在上面的代码中,@Value 注解用于将属性值注入到对应的构造方法参数中。注意,属性值的名称和 application.properties 或 application.yaml 文件中定义的属性名称必须一致。
最后,我们可以在其他组件中使用 Person 类,并通过 getter 方法获取属性值。例如:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class TestComponent {
private final Person person;
@Autowired
public TestComponent(Person person) {
this.person = person;
}
public void printPersonInfo() {
System.out.println("id: " + person.getId());
System.out.println("age: " + person.getAge());
System.out.println("name: " + person.getName());
System.out.println("hobby: " + person.getHobby());
}
}
```
在上面的代码中,我们通过 @Autowired 注解将 Person 类注入到 TestComponent 中,并通过 getter 方法获取属性值并打印输出。
希望这个样例能够帮助到你。如果还有其他问题,请随时问我。
阅读全文