首页 > 代码库 > [Spring] IOC - study
[Spring] IOC - study
Spring IOC简单注入例子,本例子使用JUnit进行测试。Spring版本:3.2
项目结构:
Spring所需引用的JAR包:
Spring XML配置:
springContext.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <import resource="dao.xml"/> <import resource="service.xml"/></beans>
dao.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean name="accountDaoFactory" class="com.my.dao.AccountFactory" abstract="true"></bean> <bean name="accountDAO" class="com.my.dao.mysql.AccountDAO" parent="accountDaoFactory"></bean></beans>
service.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean name="accountServiceFactory" class="com.my.service.AccountServiceFactory" abstract="true"></bean> <bean name="accountService" class="com.my.service.mysql.AccountService" parent="accountServiceFactory"> <property name="account" ref="accountDAO"></property> </bean></beans>
DAO的java class:
package com.my.dao;public abstract class AccountFactory { /* * Fin account by id */ public abstract Integer findAccount(Integer accountID);}
package com.my.dao.mysql;public class AccountDAO extends com.my.dao.AccountFactory { /* * Find account by account id */ @Override public Integer findAccount(Integer accountID) { return accountID; }}
Service的java class:
package com.my.service;public abstract class AccountServiceFactory { protected com.my.dao.AccountFactory account; public com.my.dao.AccountFactory getAccount() { return account; } public void setAccount(com.my.dao.AccountFactory account) { this.account = account; } /* * Find account by id */ public abstract Integer finAccount(Integer accountID);}
package com.my.service.mysql;public class AccountService extends com.my.service.AccountServiceFactory { @Override public Integer finAccount(Integer accountID) { return account.findAccount(accountID); }}
测试类:
package com.my.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.my.service.AccountServiceFactory;public class SpringTest { private ApplicationContext context = new ClassPathXmlApplicationContext("springContext.xml"); public SpringTest(){ } public Integer findAccount(Integer accountID){ AccountServiceFactory account = (AccountServiceFactory)context.getBean("accountService"); Integer id = account.finAccount(100); return id; }}
JUnit测试:
package com.my.test;import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class SpringTestTest { private SpringTest sp = new SpringTest(); @Before public void setUp() throws Exception { } @Test public void testFindAccount() { Integer accountID = 100; Integer result = sp.findAccount(accountID); assertEquals((Integer)100, result); System.out.println(result); }}
运行JUnit测试结果:
[Spring] IOC - study
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。