今天终于集成成功啦。。。
回想起来原来是这么简单。。集成花了我半天功夫。。。
这篇文章适合于对spring+hibernate+struts熟悉的人
总结了一下主要有下面这么几点,如果有问题可以联系本人QQ:416669276,本人很乐意解决
1. 新建一个Flex项目
2.添加web支持
先添加spring支持==》然后再添加hibernate支持
1.在web.xml添加spring支持
<!-- spring congfig xml -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>springContextServlet</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Log4jConfigServlet</servlet-name>
<servlet-class>org.springframework.web.util.Log4jConfigServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>web</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
2.添加一个SpringFactory.java
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import flex.messaging.FactoryInstance;
import flex.messaging.FlexContext;
import flex.messaging.FlexFactory;
import flex.messaging.config.ConfigMap;
import flex.messaging.services.ServiceException;
public class SpringFactory implements FlexFactory {
private static final String SOURCE="source";
public FactoryInstance createFactoryInstance(String id, ConfigMap propertities) {
SpringFactoryInstance instance=new SpringFactoryInstance(this,id,propertities);
instance.setSource(propertities.getPropertyAsString(SOURCE, instance.getId()));
return instance;
}
public Object lookup(FactoryInstance arg0) {
SpringFactoryInstance fi=(SpringFactoryInstance)arg0;
return fi;
}
public void initialize(String arg0, ConfigMap arg1) {
// TODO Auto-generated method stub
}
static class SpringFactoryInstance extends FactoryInstance{
public SpringFactoryInstance(FlexFactory factory, String id,
ConfigMap properties) {
super(factory, id, properties);
}
public String toString(){
return "SpringFactory instance for id="+getId()+" source="+getSource()+" scope="+ getScope();
}
public Object lookup() {
ApplicationContext appContext=WebApplicationContextUtils.getWebApplicationContext(FlexContext.getServletConfig().getServletContext());
String beanName=getSource();
try {
return appContext.getBean(beanName);
} catch (BeansException be) {
ServiceException e=new ServiceException();
String msg=""+beanName+"";
e.setMessage(msg);
e.setRootCause(be);
e.setDetails(msg);
e.setCode("Server Process");
throw e;
}
}
}
}
3.在services-config.xml配置
<factories>
<factory id="spring" class="wisdeem.tools.SpringFactory"/>
</factories>
4.在remoting-config.xml支持
<destination id="user">
<properties>
<source>UserBIZ</source>
<factory>spring</factory>
</properties>
</destination>
5.在applicationContext.xml配置bean
<bean id="UserBIZ" class=" UserBIZ" abstract="false" lazy-init="default" autowire="default" dependency-check="default">
<property name="dao" ref="UsersDAO"/>
</bean>