@Bean的使用

Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。

SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。

package com.sora.springboot01.bean;

/**
 * @Classname: MyBean
 * @Description:
 * @Author: Stonffe
 * @Date: 2022/12/15 21:28
 */
public class MyBean {
    public MyBean(){
        System.out.println("init MyBean");
    }
}

package com.sora.springboot01.config;

import com.sora.springboot01.bean.MyBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Classname: BeanConfig
 * @Description:
 * @Author: Stonffe
 * @Date: 2022/12/15 21:30
 */
@Configuration
public class BeanConfig {
    // 使用@Bean 注解表明myBean需要交给Spring进行管理
    // 未指定bean 的名称,默认采用的是 "方法名" + "首字母小写"的配置方式
    @Bean
    public MyBean myBean(){
        return new MyBean();
    }
}

package com.sora.springboot01;

import com.sora.springboot01.config.BeanConfig;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * @Classname: BeanTest
 * @Description:
 * @Author: Stonffe
 * @Date: 2022/12/15 21:33
 */
@SpringBootTest
public class BeanTest {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig.class);
        Object bean = context.getBean("myBean");
        System.out.println(bean);
    }
}

posted @ 2022-12-15 21:59  xiaoovo  阅读(189)  评论(0)    收藏  举报