IOC系列【Java装配Bean】


1. 定义配置类

1.1 代码示例

public class Hello {
          
   
    public void saySomething() {
          
   
        System.out.println("hello word!");
    }
}

@Configuration
public class JavaConfig {
          
   
    @Bean
    Hello sayHello() {
          
   
        return new Hello();
    }
}

1.2 配置类说明

  首先在配置类上有一个@Configuration注解,这个注解表示这个类不是一个普通类,而是一个配置类,它的作用相当于 applicationContext.xml。   然后,定义方法,方法返回对象,方法上添加 @Bean 注解,表示将这个方法的返回值注入的 Spring 容器中去。也就是说,@Bean 所对应的方法,就相当于applicationContext.xml 中的 <bean/>标签

2. 加载配置类

2.1 代码示例

public class Main {
          
   
    public static void main(String[] args) {
          
   
        // 加载Java配置类JavaConfig.class中定义的Bean:Spring容器会自动加载并管理配置类中定义的Bean
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
        // 从Spring容器中获取对象
        Hello hello = context.getBean("sayHello", Hello.class);
        // 使用Spring容器中管理的对象
        hello.saySomething();
    }
}

2.2 配置类加载说明

  首先我们在配置类中使用了注解来标注返回Bean实例的方法,所以这里我们需要使用AnnotationConfigApplicationContext来获取Spring容器,并加载配置类JavaConfig.class。这样的话Spring容器就会将我们定义在Java配置类中的实例全部加载到Spring容器中管理。之后,我们直接使用Spring容器的getBean方法来获取具体的实例。

经验分享 程序员 微信小程序 职场和发展