欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

bean是如何装载到Spring IOC容器的

程序员文章站 2022-03-03 11:50:21
...

首先快速搭建一个web项目(基于spring boot)

创建一个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());
    }

}

 相比之下更加的简单便捷

相关标签: ioc bean