- 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
标签:容器,12,作用域,bean,saxReader,Bean,IOC,public
From: https://www.cnblogs.com/chenshaojun2008/p/17501880.html