本帖最后由 JavaTear 于 2013-04-02 09:59:26 编辑

解决方案 »

  1.   

    文件有点多,全贴在这里,会不会导致页面很难看啊.我直接传到csdn上了http://download.csdn.net/detail/javatear/5212365
      

  2.   

    import java.util.Map;import org.jmin.ioc.element.DestroyMethodName;
    import org.jmin.ioc.element.InitializeMethodName;
    import org.jmin.ioc.element.InjectionInvocation;
    import org.jmin.ioc.element.InjectionProperty;
    import org.jmin.ioc.element.InstanceCreation;
    import org.jmin.ioc.element.InstanceSingleton;
    import org.jmin.ioc.element.InvocationInterception;
    import org.jmin.ioc.element.ParentReferenceId;
    import org.jmin.ioc.element.PropertyAutowire;
    import org.jmin.ioc.element.ProxyInterfaces;public interface BeanContainer  {  /**
       * contains beanID
       */
      public boolean containsID(Object id);  /**
       * Find a bean instance from container by a id.
       * If not found, then return null.
       */
      public Object getBean(Object id)throws BeanException;  /**
       * Find a bean instance with a class. If not found, then return null.
       */
      public Object getBeanByClass(Class cls)throws BeanException;  /**
       * Find all bean instance map
       */
      public Map getBeansByClass(Class cls)throws BeanException;
        /**
       * 构造元素工厂
       */
      public BeanElementFactory getBeanElementFactory()throws BeanException;
      
      /**
       * 构造参数工厂
       */
      public BeanParameterFactory getBeanParameterFactory()throws BeanException;
      
      /**
       * register a classes
       */
      public void registerClass(Class beanClass)throws BeanException;
      
      /**
       * register a object instance in container
       */
      public void registerInstance(Object instance)throws BeanException;  /**
       * register a object instance with a id
       */
      public void registerInstance(Object id, Object instance)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InjectionProperty[] properties)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InjectionProperty[] properties,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, BeanParameter[] parameters)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, BeanParameter[] parameters,InjectionProperty[] properties)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, BeanParameter[] parameters,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, BeanParameter[] parametersr,InjectionProperty[] properties, InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InstanceCreation constructor)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InstanceCreation constructor,InjectionProperty[] properties)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InstanceCreation constructor,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, InstanceCreation constructor,InjectionProperty[] properties, InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Class beanClass, BeanElement[] registerElements)throws BeanException;
      /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InjectionProperty[] properties)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InjectionProperty[] properties,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,BeanParameter[] parameters)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,BeanParameter[] parameters, InjectionProperty[] properties)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,BeanParameter[] parameters, InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,BeanParameter[] parameters, InjectionProperty[] properties,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InstanceCreation constructor)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InstanceCreation constructor,InjectionProperty[] properties)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InstanceCreation constructor,InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,InstanceCreation constructor,InjectionProperty[] properties, InjectionInvocation[] invocation)throws BeanException;  /**
       * register a classes
       */
      public void registerClass(Object id, Class beanClass,BeanElement[] registerElements)throws BeanException;  /**Some set Invocations to change managed bean defination in micro-container*/
      
      
      /**
       * set singleton for bean
       */
      public void setInstanceSingleton(Object id, boolean singleton)throws BeanException;  /**
       * set singleton for bean
       */
      public void setInstanceSingleton(Object id, InstanceSingleton singleton)throws BeanException;
      
      /**
       * set autowire for bean
       */
      public void setPropertyAutowire(Object id, PropertyAutowire autowire)throws BeanException;
      
      /**
       * set singleton for bean
       */
      public void setParentReferenceId(Object id, Object parentID)throws BeanException;
      
      /**
       * set singleton for bean
       */
      public void setParentReferenceId(Object id, ParentReferenceId parent)throws BeanException;
     
      /**
       * set init Invocation
       */
      public void setInitMethodName(Object id,String methodName)throws BeanException;
      
      /**
       * set init Invocation
       */
      public void setInitMethodName(Object id,InitializeMethodName methodName)throws BeanException;
      
      /**
       * set destroy Invocation
       */
      public void setDestroyMethodName(Object id, String methodName)throws BeanException;  /**
       * set destroy Invocation
       */
      public void setDestroyMethodName(Object id, DestroyMethodName methodName)throws BeanException;  
      /**
       * add a property
       */
      public void addInjectionProperty(Object id,InjectionProperty property)throws BeanException;  /**
       * remove a property
       */
      public void removeInjectionProperty(Object id,InjectionProperty property)throws BeanException;  /**
       * add a Invocation invocation
       */
      public void addInjectionInvocation(Object id,InjectionInvocation invocation)throws BeanException;  /**
       * remove a Invocation invocation
       */
      public void removeInjectionInvocation(Object id,InjectionInvocation invocation)throws BeanException;  /**
       * add a interception
       */
      public void addInvocationInterception(Object id, InvocationInterception interceptions)throws BeanException;  /**
       * remove a  interception
       */
      public void removeInvocationInterception(Object id, InvocationInterception interceptions)throws BeanException;  /**
       * Set proxy interfaces on a object for
       */
      public void setProxyInterfaces(Object id,Class[] proxyInterfaces)throws BeanException;
      
      /**
       * Set proxy interfaces on a object for
       */
      public void setProxyInterfaces(Object id,ProxyInterfaces proxyInterfaces)throws BeanException;
      
      /**
       * deregister a bean by id
       */
      public void deregister(Object id)throws BeanException;
      
      
      /**
      * check contains converter by type
      */
      public boolean containsTypeConverter(Class type)throws BeanException;
     
      /**
       * remove type converter
       */
      public void removeTypeConverter(Class type)throws BeanException;

      /**
       * get type converter
       */
      public BeanTypeConverter getTypeConverter(Class type)throws BeanException;

      /**
       * add type converter
       */
      public void addTypeConverter(Class type,BeanTypeConverter converter)throws BeanException;

      /**
       * convert object
       */
      public Object convertObject(Object obj,Class type)throws BeanException;
      /**
       * Destroy operation in ioc container
       */
      public void destroy();
    }
      

  3.   

    LZ确实很强大,只是你干嘛不给核心代码啊,让小弟也好参考参考,impl包下的都被你搞掉了
      

  4.   

    您太幽默了,我只不是菜鸟一个. 我个人认为接口和思想很重要,只要能设计好它,稍微有点经验的人都可以以此开发自己的Ioc容器.
      

  5.   

    最好能放到git这种类型的源代码托管网站上。这样大家下载看起来,提交代码都方便