在Springboot 中@Autowired注解的主要功能是 它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。
但是在使用@Autowired注解之前,我们需要对一个bean使用@Component注解
贴上代码:
@Component 注解使用bean
@Component
public class User {
private int id;
private String name;
public User(int id, String name) {
this.id = id;
this.name = name;
}
public User() {
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@Autowired 使用处
public class MVCController {
@Autowired
private User user;
public void showUser(){
user.setId(1);
user.setName("小白");
System.out.println (user.getName()+user.getId());
}
}
在学习@Autowired注解的时候,遇到了一个问题:
我的User类中有两个构造函数,但是在使用@Autowired注解装配的时候,好像是会默认使用默认构造函数来创建对象,所以返回的user对象值是
{"id":0,"name":null}
但是我想在创建的时候就附上值,因为初学不是很了解,于是这样解决了这个问题;
public class MVCController {
private User user;
@Autowired
public MVCController(User user){
user.setId (2);
user.setName ("张无忌");
this.user=user;
}
}
在使用@Autowired注解得类的构造函数中对user进行赋值 取出来的值是:
{"id":2,"name":"张无忌"}
我不知道有没有更好的方法, 请大神讲解 谢谢。!!!!!!!