diff --git a/weixin4j-server/pom.xml b/weixin4j-server/pom.xml
index 7ab5119f..d4a90fa6 100644
--- a/weixin4j-server/pom.xml
+++ b/weixin4j-server/pom.xml
@@ -44,5 +44,11 @@
test
+
+ org.springframework
+ spring-context
+ 4.2.0.RELEASE
+ test
+
\ No newline at end of file
diff --git a/weixin4j-server/src/main/java/com/foxinmy/weixin4j/spring/SpringBeanFactory.java b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/spring/SpringBeanFactory.java
new file mode 100644
index 00000000..0a22dc38
--- /dev/null
+++ b/weixin4j-server/src/main/java/com/foxinmy/weixin4j/spring/SpringBeanFactory.java
@@ -0,0 +1,46 @@
+package com.foxinmy.weixin4j.spring;
+
+import java.util.Map;
+
+import org.springframework.context.ApplicationContext;
+
+import com.foxinmy.weixin4j.dispatcher.BeanFactory;
+import com.foxinmy.weixin4j.exception.WeixinException;
+
+/**
+ * 使用spring容器获取bean
+ *
+ * @className SpringBeanFactory
+ * @author jy
+ * @date 2015年8月11日
+ * @since JDK 1.6
+ * @see
+ */
+public class SpringBeanFactory implements BeanFactory {
+
+ private ApplicationContext context;
+
+ public SpringBeanFactory(ApplicationContext context) {
+ this.context = context;
+ }
+
+ @Override
+ public Object getBean(String name) throws WeixinException {
+ return context.getBean(name);
+ }
+
+ @Override
+ public T getBean(Class classType) throws WeixinException {
+ return context.getBean(classType);
+ }
+
+ @Override
+ public T getBean(String name, Class classType) throws WeixinException {
+ return context.getBean(name, classType);
+ }
+
+ @Override
+ public Map getBeans(Class clazz) throws WeixinException {
+ return context.getBeansOfType(clazz);
+ }
+}
\ No newline at end of file