spring extral features-----StaticApplicationContext

@Test
	public void test(){
		//通过编程的方式去启动一个bean容器---该类通常用于测试,用于加载任意的外部资源,而不用加载特定格式的文件
		StaticApplicationContext  staticAppContext=new StaticApplicationContext();
		
		MutablePropertyValues pvs=new MutablePropertyValues();
		//在创建对象,需要指定实现类,不能是用抽象类或者接口,否则会出现错误
		staticAppContext.registerSingleton("userDao", UserDaoImpl.class);

		//创建为UserServiceImpl---可以通过
		pvs.add("userDao", staticAppContext.getBean(UserDao.class));
		//注册为单例模式 		并将属性键值对传入,value可以为引用类型
		staticAppContext.registerSingleton("userService", UserServiceImpl.class, pvs);
		
		staticAppContext.registerSingleton("userService2", UserServiceImpl2.class);
		
		
		UserService userService=staticAppContext.getBean("userService",UserService.class);
		userService.save("hot", "123456");
		
		ConfigurableListableBeanFactory factory=staticAppContext.getBeanFactory();
		
		Map<String, Object> beans=factory.getBeansWithAnnotation(Quality.class);
		Iterator<Object> iterator=beans.values().iterator();
		
		while(iterator.hasNext()){
			System.err.println(iterator.next().getClass());
		}
		
		staticAppContext.close();
		
		
	}

    我们可以通过上述的机制,来完成特殊的应用需求。例如,在web app启动的时候,从远程加载bean定义文件;动态创建bean;当然也可以通过别的机制完成特殊需求。各位根据自己的业务可以进行特殊定义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值