码迷,mamicode.com
首页 > 其他好文 > 详细

自己实现的依赖注入小玩具

时间:2017-03-15 00:02:34      阅读:277      评论:0      收藏:0      [点我收藏+]

标签:pack   min   rod   cal   sources   drive   com   turn   依赖注入   

package app10e.util;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;

import app10d.action.GetProductsAction;
import app10d.action.SaveProductAction;
import app10d.dao.ProductDAO;
import app10d.dao.ProductDAOImpl;
import app10d.validator.ProductValidator;

public class DependencyInjector {
  private DataSource dataSource;
  
  public void start()
  {
      //使用C3P0连接池
      ComboPooledDataSource cpds=new ComboPooledDataSource();
      try
      {
          cpds.setDriverClass("com.mysql.jdbc.Driver");
      }
      catch(Exception e)
      {
          e.printStackTrace();
      }
      
      cpds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
      cpds.setUser("root");
      cpds.setPassword("123");
      
      cpds.setMinPoolSize(5);
      cpds.setAcquireIncrement(5);
      cpds.setMaxPoolSize(20);
      dataSource=cpds;
  }
 
  
  public void shutDown()
  {
      try
      {
          DataSources.destroy(dataSource);
      }
      catch(Exception e)
      {
          e.printStackTrace();
      }
  }
  
  public Object getObject(Class type)
  {
      if(type==ProductValidator.class)
      {
          return new ProductValidator();
      }
      else if(type==ProductDAO.class)
      {
        return createProductDAO();
      }
      else if(type==GetProductsAction.class)
      {
          return  createGetProductAction();
      }
      else if(type==SaveProductAction.class)
      {
          return createSaveProductAction();
      }
      return null;
  }
      
      private GetProductsAction createGetProductAction()
      {
          GetProductsAction getProductsAction=new GetProductsAction();
          getProductsAction.setProductDAO(createProductDAO());
          return getProductsAction;
      }
      
      private SaveProductAction createSaveProductAction()
      {
          SaveProductAction saveProductAction=new SaveProductAction();
          saveProductAction.setProductDAO(createProductDAO());
          return saveProductAction;
      }
      
      private ProductDAO createProductDAO()
      {
          ProductDAO productDAO=new ProductDAOImpl();
          productDAO.setDataSource(dataSource);
          return productDAO;
          
      }
      
      
     
  }
  
  
  

 

自己实现的依赖注入小玩具

标签:pack   min   rod   cal   sources   drive   com   turn   依赖注入   

原文地址:http://www.cnblogs.com/HJL085/p/6551430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!