现在的位置: 首页 > 综合 > 正文

项目中工厂模式的注入jdbcTemplate,并在spring中配置。

2018年05月17日 ⁄ 综合 ⁄ 共 1691字 ⁄ 字号 评论关闭
  	<bean id="jt" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource" />
	</bean>
  	<bean id="jt2" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSources" />
	</bean>
	
	<bean id="source" class="com.qbkj.erp.domain.JtSource">  
	    <property name="maps">  
	        <map merge="true" key-type="java.lang.String" 
	             value-type="org.springframework.jdbc.core.JdbcTemplate">  
	            <entry key="jtTest1" value-ref="jt"/>  
	            <entry key="jtTest2" value-ref="jt2"/>  
	        </map>  
	    </property>  
	</bean>  

package com.qbkj.erp.util;

import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import org.springframework.beans.factory.config.MapFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;

import com.qbkj.erp.domain.JtSource;

/**
 * 根据传过来的字符串,返回相应的JT
 * @author Administrator
 * 工厂模式
 */
public class GetFactory {

	public GetFactory() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	private static GetFactory instance =  new GetFactory();
	
	public static GetFactory getInstanceFactory(){
		return instance;
	}
	/**
	 * 获取JdbcTemplate
	 * @return
	 */
	public JdbcTemplate  getJt(String jtName){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("jdbc.xml");
		JtSource jtSource  = (JtSource) ctx.getBean("source");
		Map<Object, Object> maps = jtSource.getMaps();
		Set<Entry<Object, Object>> set3 =maps.entrySet();
		for(Entry<Object,Object> mapEntry : set3){
			if (mapEntry.getKey().equals(jtName)) {
				return (JdbcTemplate) mapEntry.getValue();
			}
		}
		return null;
	}
	
	public static void main(String[] args) {
		JdbcTemplate jdbcTemplate = GetFactory.getInstanceFactory().getJt("lala");
		System.out.println(jdbcTemplate.getDataSource());
	}
}

在spring中的配置文件中,可以自己配置List  Map等。

抱歉!评论已关闭.