package com.test;
import java.lang.reflect.Proxy;
import org.junit.Test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import com.test.aop.Manager;
import com.test.aware.ApplicationUtil;
import com.test.bean.Person;
import com.test.designermodel.proxymodel.AbstractRole;
import com.test.designermodel.proxymodel.DynamicProxyRole;
import com.test.designermodel.proxymodel.ProxyRole;
import com.test.designermodel.proxymodel.RealRole;
import com.test.designermodel.singletonmodel.Singleton;
import com.test.jdkproxy.Action;
import com.test.jdkproxy.ActionImp;
import com.test.jdkproxy.HandlerImp;
import com.test.proxy.SqlManager;
public class JunitTest {
/**
* 测试BeanFactory
*/
// @Test
public void testBeanFactory(){
ClassPathResource resource = new ClassPathResource("bean.xml");
DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(bf);
reader.loadBeanDefinitions(resource);
Person p = bf.getBean("person", Person.class);
p.info();
}
/**
* 测试ApplicationContext
*/
// @Test
public void testApplicationContext(){
ApplicationContext ctx = new FileSystemXmlApplicationContext("H:\\workspaceST\\cygoattest\\src\\test\\resources\\bean.xml");
Person p = (Person) ctx.getBean("person");
p.info();
}
/**
* 测试jdk动态代理
*/
// @Test
public void testJdkProxy(){
Action obj = (Action) Proxy.newProxyInstance(ActionImp.class.getClassLoader(), ActionImp.class.getInterfaces(), new HandlerImp(new ActionImp()));
obj.action();
}
/**
* 测试Spring动态代理
*/
// @Test
public void testProxyFactoryBean(){
ApplicationContext bf = new FileSystemXmlApplicationContext("H:\\workspaceST\\cygoattest\\src\\test\\resources\\bean.xml");
SqlManager manager = (SqlManager) bf.getBean("factoryBean");
manager.insert("");
}
/**
* 测试Aware感知特性
*/
// @Test
public void testAware(){
ApplicationContext ctx = new FileSystemXmlApplicationContext("H:\\workspaceST\\cygoattest\\src\\test\\resources\\bean.xml");
ApplicationUtil util = (ApplicationUtil) ctx.getBean("applicationUtil",ApplicationUtil.class);
System.out.println(util.getApplicationContext());
System.out.println(util.getBeanName());
}
/**
* 测试Spring Aop
*/
// @Test
public void testSpringAop(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");
Manager manager = (Manager) ctx.getBean("manager");
System.out.println("------------------------测试插入方法---------------------------");
manager.insert("insert into sp_user(1,2,'1111')");
System.out.println("------------------------测试查询所有数据的查询方法---------------------------");
manager.findAll();
System.out.println("------------------------测试查询方法---------------------------");
manager.find("select * from sp_user");
}
}