bean是如何装载到Spring IOC容器的
程序员文章站
2022-03-03 11:50:21
...
创建一个Person(实体类)
public class Person {
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
接着新建一个ApplicationConfig类,用来初始化bean并装配进IOC容器
@Configuration
public class ApplicationConfig {
@Bean(name = "person") //定义bean的名称
public Person initPerson(){
Person user = new Person();
user.setId(1L);
user.setName("jack");
return user;
}
}
接着在主程序获取bean
@SpringBootApplication
public class OracleApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(OracleApplication.class, args);
Person bean = ctx.getBean(Person.class);
System.out.println("Name is"+bean.getName());
}
}
但是如果当bean的数量庞大的时候,上述的方法显然是不可取的
下面我们我们来看一下spring boot提供的将bean扫描装配进IOC容器的方法
更改Person类(定义,初始化,装配一体)
//标明那些bean要被扫面装配进spring ioc容器
@Component("person")
public class Person {
@Value("1")
private Long id;
@Value("jack")
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ApplicationConfig类直接省略,运行主程序便能获取到bean
@SpringBootApplication
public class OracleApplication {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(OracleApplication.class, args);
Person bean = ctx.getBean(Person.class);
System.out.println("Name is"+bean.getName());
}
}
相比之下更加的简单便捷
上一篇: Java 普通类实现spring bean的自定装载
下一篇: Spring中的Bean