12. Bean 获取,作用域,管理

发布时间 2023-06-24 23:38:02作者: 大树2
  1. Bean 获取,作用域,管理

默认情况下,spring项目启动时,会把bean都创建好放在IOC容器中,如何想主动获取这些bean,可以通过如下方式获取:getBean()

@Autowired
private ApplicationContext applicationContext;//IOC容器对象

类名  lei=(类名)applicationContext.getBean("类名");

@Singleton bean默认是单列的,在容器启动时被创建,可以使用@Lazy注解延迟初始化
@Scope("prototype")

---------------------------------声明第三方bean,获取bean-------------------------------

在类上添加@Component 注解来注入IOC容器,但是对应引入的第三方包不能修改怎么注入呢?用@Bean

@SpringBootApplication
public class SpringbootAopQuickstartApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootAopQuickstartApplication.class, args);
    }

//声明第三方bean 
    @Bean //将方法返回值交给IOC容器管理,成为IOC容器的bean对象(第3方包)
    public SAXReader saxReader(){
        return new Saxreader();
    }
}

---------------------------------声明第三方bean,获取bean-------------------------------

@Configuration
public class CommonConfig {
 
//声明第三方bean 
    @Bean //将方法返回值交给IOC容器管理,成为IOC容器的bean对象(第3方包)
    public SAXReader saxReader(){    //saxReader 方法名是bean对象
        return new Saxreader();
    }
}



    @Test
    public void testGetBean(){
        Object saxReader=applicationContext.getBean("reader");
        System.out.println(saxReader);
    }

注解注入IOC容器:

@Component
@Controller
@Service
@Repository