Spring的@Bean註解用於告訴方法,產生一個Bean對象,然後這個Bean對象交給Spring管理。產生這個Bean對象的方法Spring只會調用一次,隨後這個Spring將會將這個Bean對象放在自己的IOC容器中。
SpringIOC 容器管理一個或者多個bean,這些bean都需要在@Configuration註解下進行創建,在一個方法上使用@Bean註解就表明這個方法需要交給Spring進行管理。
public class User {
private int id;
private String name;
private String password;
private String number;
private String birthday;
private String job;
private String gender;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
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;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password =password;}
public String getNumber() { return number;}
public void setNumber(String number) {this.number = number;}
public String getBirthday() {return birthday;}
public void setBirthday(String birthday) {this.birthday = birthday; }
public String getJob() {return job; }
public void setJob(String job) {this.job = job; }
public String getGender() { return gender;}
public void setGender(String gender) {this.gender = gender; }
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ",gender="+gender+"," +
" job="+job+",password=" + password + "," +
"birthday="+birthday+", number=" + number + "password="+password+"]";
}
}
@Configuration
public class ConfigIOC {
// 方法名爲這個bean在Spring容器的名稱,也可以在@Bean後面添加("user名稱")重命名
@Bean
public User user(){
return new User();
}
}
@SpringBootTest
class SpringbootApplicationTests {
@Test
void contextLoads() {
ApplicationContext applicationContext = new
AnnotationConfigApplicationContext(ConfigIOC.class);
User bean = (User) applicationContext.getBean("user");
System.out.println(bean);
}
}