/* * Copyright 2008 biaoping.yin * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.frameworkset.spi.properties.loopinject; import org.frameworkset.spi.ApplicationContext; import org.frameworkset.spi.BaseApplicationContext; import org.frameworkset.spi.DefaultApplicationContext; import org.junit.Before; import org.junit.Test; /** * <p>Title: TestloopInject.java</p> * <p>Description: bbossgroups 3.5以前的版本不支持属性循环依赖注入, * 3.5以后的版本提供了很好的支持,并且支持局部循环引用 * 局部循环引用的名称格式定义为: * name1->name12->name121 * * 对于构造函数的依赖注入处理 * 对于工厂依赖注入处理 * 对于从引用开始的依赖注入处理(这个必须支持循环引用,具体需要进一步改进) * </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2007</p> * @Date 2010-1-17 下午08:41:46 * @author biaoping.yin * @version 1.0 */ public class TestloopInject { BaseApplicationContext context ; @Before public void init() { context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/properties/loopinject/loopinject.xml"); } @Test public void injectloop() { A a = (A)context.getBeanObject("loop.a"); System.out.println(a); } @Test public void selfinjectloop() { BaseApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/properties/loopinject/test.xml"); Test1 a = (Test1)context.getBeanObject("test1"); System.out.println(a); } @Test public void selfcontaininjectloop() { BaseApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/properties/loopinject/testcontainref.xml"); Test1 a = (Test1)context.getBeanObject("test1"); System.out.println(a); } @Test public void refinjectloop() { BaseApplicationContext context = DefaultApplicationContext.getApplicationContext("org/frameworkset/spi/properties/loopinject/test.xml"); Test1 a = (Test1)context.getBeanObject("test1"); Test2 test6 = (Test2)context.getBeanObject("test6"); Test2 test7 = (Test2)context.getBeanObject("test7"); Test2 test8 = (Test2)context.getBeanObject("test8"); System.out.println(a); } }