`
dragonxiangfu
  • 浏览: 156459 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

flex+cairngorm+spring+hibernate整合实例

 
阅读更多

准备:
SQL server2005:
JDK:
jdk-1.5.0.0
TOMCAT:
tomcat-6.0.20
ECLIPSE:
eclipse -3.3
MYECLIPSE插件 :
MyEclipse-6.5
Flex :
FB3_WWEJ_Plugin.exe
BLEAZEDS:
BlazeDS,下载 地址:
http://opensource.adobe.com/wiki/display/blazeds/Release+Builds

安装:
一:
安装mysql ,jdk,tomcat,eclipse,myeclipse 并正确配置环境 变量。
二:安装flex3
1. 首先下载安装Eclipse 3.3 解压到 D:\Program Files\eclipse 到算安装成功了.
2. 下载安装Flex Builder 3.0
http://trials.adobe.com/Applications/Flex/FlexBuilder/3/FB3_WWEJ_Plugin.exe
1. 指定 Flex Builder 3.0 安装路径为D:\Program Files\eclipse\Flex Builder,进下一步. (你也可设为其它目录,但不要这样 :\Program Files\eclipse)
2. 指定 Eclipse 安装路径为 D:\Program Files\eclipse 进下一步.
3. 选择是否安装浏览器 Flash Plyer 9 插件(可选安装)
安装要花一点时间.大家慢慢等待...出现一些提示你不用管它.
等安装完后运行 Eclipse.exe 你是看不到 Flex的..往下看我会帮你解决 这个问题^_^
3. 绿化Flex Builder 这是重点.
1. 把D:\Program Files\eclipse\Flex Builder\com.adobe.flexbuilder.update.site\下的 plugins、features、site.xml
复制到 D:\Program Files\eclipse\ (如果你的eclipse目录已经有一个site.xml 你只要把两个文件 的feature节内容合并就好了.)

2. 把D:\Program Files\eclipse\Flex Builder\eclipse\下的 plugins、features(如果有的话,这是Eclipse的一些更新)
复制到 D:\Program Files\eclipse\

3. 把D:\Program Files\eclipse\Flex Builder\sdks 复制到D:\Program Files\eclipse\

OK,Flex Builder安装完成,接下来就是启动Elipse
我们现在已经可以找到Flex了.但还没完,请往下看.

4. 进行Flex的配置.
在Eclipse中.点击->Window-> references->Flex->Installed Flex SDKs
修改Flex SDKs 2.0 和 Flex SDKs 3.0的路径点Apply让设置 成效.
重启Eclipse..你就可以开发 Flex了.

5. 现在你的Flex已经开始工作了.但之前安装的Flex Builder怎么办呢.哈哈.
运行这个D:\Program Files\eclipse\Flex Builder\Uninstall Adobe Flex Builder 3 Plug-in\Uninstall Adobe Flex Builder 3 Plug-in.exe就可以了.


三:bleazeds
解压到任何一个地方就可以,主要用到里面的flex文件夹和lib文件夹

HELLO WORLD示例:
1. 建立数据

  1. CREATE TABLE `user` (

  2. `UserID` int(11) NOT NULL auto_increment,

  3. `UserName` varchar(20) default NULL,

  4. `Password` varchar(20) default NULL,

  5. `Email` varchar(20) default NULL,

  6. PRIMARY KEY(`UserID`)

  7. ) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
复制代码

2. 插入测试数据

3. 搭配flex+bleazeds的web项目
1.新建web项目MyFirstFSH
按NEXT进入下一步
点击FINISH

2.添加bleazeds支持
1.找到已解压的 bleazeds 文件夹,进入到:blazeds\WEB-INF
复制flex和lib两个文件夹到MyFirstFSH下的webRoot/WEB-INF目录下

2.在web.xml文件中添加代码:

  1. <!-- Http Flex Session attribute and binding listener support -->

  2. <listener>

  3. <listener-class>flex.messaging.HttpFlexSession</listener-class>

  4. </listener>



  5. <!-- MessageBroker Servlet -->

  6. <servlet>

  7. <servlet-name>MessageBrokerServlet</servlet-name>

  8. <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>

  9. <init-param>

  10. <param-name>services.configuration.file</param-name>

  11. <param-value>/WEB-INF/flex/services-config.xml</param-value>

  12. </init-param>

  13. <load-on-startup>1</load-on-startup>

  14. </servlet>



  15. <servlet-mapping>

  16. <servlet-name>MessageBrokerServlet</servlet-name>

  17. <url-pattern>/messagebroker/*</url-pattern>

  18. </servlet-mapping>
复制代码

将web工程添加到tomcat中

3.添加flex工程

1.右键MyFirtstFSH,选择:Flex Project Nature-Add Flex Project Nature

注:选择J2EE,作用LCDS远程对象
Root folder:选择刚才Deploy的工程路径
Root URL:TOMCAT服务器 的启动路径
Context root :编译 后的FLEX文件保存路径
Output folder:工程 重构后FLEX文件的输出路径

[点击Finish完成]
2配置Flex 项目属性
在Flex视图下,右键 properties打开项目属性设置对话框.选择 “Flex Build Path”,出现以下对话框:
Output folder:工程FLEX文件的输出路径
Output folder URL:工程在TOMCAT服务 器的启动路径
――――――――――――――――――――――――――
选择 “Flex Compiler”,出现以下对话框:

选择你当前用的FLEX SDK(如何你前面步骤配置好的话就不会出错了!)
[点击Apply应用 ]
―――――――――――――――――――――――――――――――――――
选择 “Flex Server ”,出现以下对话框:
Context root:是你的工程的根目录
[点击OK完成设置]
这时会出现错误提示:
右键“错误”信息,Recreate …
3.到了这个时候基本上已经搭建好flex+bleazeds的web环境,现在来测试一下。
新建一个包:com.test.test

在包中新一个类:HelloWorld,作用flex的一个远程对象


package com.test.test;

public class HelloWorld {
public String sayHelloTo(String name){
return "Hello "+name;
}
}
在WEB-INF/flex/remotiong-config.xml中注册这个远程对象
<destination id="Hello">
<properties> <source>com.wingo.myfirstfsh.web.ro.HelloWorld</source>
</properties>
</destination>
编辑FLEX应用程序
在src/ MyFirstFSH.mxml 中添加以下代码:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

  3. <mx:RemoteObject id="say" destination="Hello">

  4. </mx:RemoteObject>

  5. <mx:Button x="335" y="80" label=" Click" click="remotingSayHello(event);"/>

  6. <mx:TextInput x="159" y="80" id="tiName"/>

  7. <mx:Label x="109" y="82" text="name:"/>

  8. <mx:Label text="{say.sayHelloTo.lastResult}" x="44" y="162"
  9. width="448" height="71" id="lblView" color="#FCEE09" fontSize="20"
  10. fontWeight="bold" textDecoration="underline" fontStyle="normal"/>

  11. <mx:Script>

  12. <![CDATA[

  13. function remotingSayHello(event:Event):void{

  14. var iname:String=tiName.text;

  15. say.sayHelloTo(iname);

  16. }

  17. ]]>

  18. </mx:Script>

  19. </mx:Application>
复制代码

启动tomcat 打开http://localhost:8080/MyFirstFSH/pages/MyFirstFSH.html
到了这一步,flex+bleazeds已经完成
4.加上spring
1.右键Myeclipse-Add spring
2.添加包: com.test.common
3.添加Spring Factory.java

  1. package com.wingo.myfirstfsh.common;

  2. import org.springframework.context.ApplicationContext;

  3. import org.springframework.web.context.support.Web ApplicationContextUtils;

  4. import org.springframework.beans.BeansException;

  5. import org.springframework.beans.factory.NoSuchBeanDefinitionException;



  6. import flex.messaging.FactoryInstance;

  7. import flex.messaging.FlexFactory;

  8. import flex.messaging.config.ConfigMap;

  9. import flex.messaging.services.ServiceException;



  10. public class SpringFactory implements FlexFactory

  11. {

  12. private static final String SOURCE = "source";

  13. public void initialize(String id, ConfigMap configMap) {}



  14. public FactoryInstance createFactoryInstance(String id, ConfigMap properties)

  15. {

  16. SpringFactoryInstance instance = new SpringFactoryInstance(this, id, properties);

  17. instance.setSource(properties.getPropertyAsString(SOURCE, instance.getId()));

  18. return instance;

  19. } // end method createFactoryInstance()



  20. public Object lookup(FactoryInstance inst)

  21. {

  22. SpringFactoryInstance factoryInstance = (SpringFactoryInstance) inst;

  23. return factoryInstance.lookup();

  24. }

  25. static class SpringFactoryInstance extends FactoryInstance

  26. {

  27. SpringFactoryInstance(SpringFactory factory, String id, ConfigMap properties)

  28. {

  29. super(factory, id, properties);

  30. }





  31. public String toString()

  32. {

  33. return "SpringFactory instance for id=" + getId() + " source=" + getSource() + " scope=" + getScope();

  34. }



  35. public Object lookup()

  36. {

  37. ApplicationContext appContext =
  38. WebApplicationContextUtils.getWebApplicationContext(flex.messaging.FlexContext.getServletConfig().getServletContext());

  39. String beanName = getSource();



  40. try

  41. {

  42. return appContext.getBean(beanName);

  43. }

  44. catch (NoSuchBeanDefinitionException nexc)

  45. {

  46. ServiceException e = new ServiceException();

  47. String msg = "Spring service named '" + beanName + "' does not exist.";

  48. e.setMessage(msg);

  49. e.setRootCause(nexc);

  50. e.setDetails(msg);

  51. e.setCode("Server.Processing");

  52. throw e;

  53. }

  54. catch (BeansException bexc)

  55. {

  56. ServiceException e = new ServiceException();

  57. String msg = "Unable to create Spring service named '" + beanName + "' ";

  58. e.setMessage(msg);

  59. e.setRootCause(bexc);

  60. e.setDetails(msg);

  61. e.setCode("Server.Processing");

  62. throw e;

  63. }

  64. }

  65. }

  66. }
复制代码

4. 在WEB-INF/flex中的services-config.xml中注册SpringFactory工厂

  1. <factories>

  2. <factory id="spring" class="com.wingo.myfirstfsh.common.SpringFactory" />

  3. </factories>
复制代码

5.在WEB-INF/web.xml中加入对 spring的支持

  1. <!-- Backend configuration -->

  2. <context-param>

  3. <param-name>contextConfigLocation</param-name>

  4. <param-value>/WEB-INF/classes/applicationContext.xml</param-value>

  5. </context-param>

  6. <servlet>

  7. <servlet-name>SpringContextServlet</servlet-name>

  8. <servlet-class>

  9. org.springframework.web.context.ContextLoaderServlet

  10. </servlet-class>

  11. <load-on-startup>1</load-on-startup>

  12. </servlet>

  13. <servlet>

  14. <servlet-name>SpringLog4jConfigServlet</servlet-name>

  15. <servlet-class>

  16. org.springframework.web.util.Log4jConfigServlet

  17. </servlet-class>

  18. </servlet>

  19. <servlet>

  20. <servlet-name>web</servlet-name>

  21. <servlet-class>

  22. org.springframework.web.servlet.DispatcherServlet

  23. </servlet-class>

  24. </servlet>
复制代码

5.添加hibernate
1.添加数据源
2.加进hibernate
右键MyFirstFSH-MyEclipes-Add Hibernate

点击:Finish

3.添加包:
4.利用myeclipse自动生成User.java,User.hbm.xml,UserDAO
打开:

5.把UserDAO放到com.test.dao.impl下
6.修改applicationContext.xml中对

  1. <bean id="userDAO" class="com.test.dao.impl.UserDAO">

  2. <property name="sessionFactory">

  3. <ref bean="sessionFactory" />

  4. </property>

  5. </bean>
复制代码

8.添加类
代码如下:

  1. package test.service.impl;



  2. import com.test.dao.impl.UserDAO;

  3. import com.test.vo.User;



  4. public class IUserServiceImpl {

  5. private UserDAO userDAO;



  6. public User getUser(Integer id){

  7. return userDAO.findById(id);

  8. }



  9. public UserDAO getUserDAO() {

  10. return userDAO;

  11. }



  12. public void setUserDAO(UserDAO userDAO) {

  13. this.userDAO = userDAO;

  14. }



  15. }
复制代码

9. 修改HellWorld.java文件
代码如下:

  1. package com.test.test;



  2. import com.test.service.impl.IUserServiceImpl;

  3. import com.test.vo.User;



  4. public class HelloWorld {

  5. private IUserServiceImpl userService;



  6. public String sayHelloTo(String id){

  7. User user = new User();

  8. user = userService.getUser(Integer.valueOf(id));

  9. return "Hello "+user.getUserName();

  10. }

  11. public IUserServiceImpl getUserService() {

  12. return userService;

  13. }

  14. public void setUserService(IUserServiceImpl userService) {

  15. this.userService = userService;

  16. }



  17. }
复制代码

10. 在WEB-INF/applicationContext.xml注册bean
applicationContext.xml增加的代码:

  1. <bean id="userService"

  2. class="com.test.service.impl.IUserServiceImpl"

  3. abstract="false" lazy-init="default" autowire="default"

  4. dependency-check="default">

  5. <property name="userDAO">

  6. <ref local="userDAO" />

  7. </property>

  8. </bean>



  9. <bean name="helloWorld"

  10. class="com.test.test.HelloWorld" abstract="false"

  11. lazy-init="default" autowire="default" dependency-check="default">

  12. <property name="userService">

  13. <ref local="userService" />

  14. </property>

  15. </bean>
复制代码

11.修改:WEB-INF/flex /remoting-config.xml

  1. <destination id="Hello">

  2. <properties>

  3. <factory>spring</factory>

  4. <source>helloWorld</source>

  5. </properties>

  6. </destination>
复制代码

到此已完成所以配置,测试一下
启动Tomcat http://localhost:8080/MyFirstFSH/pages/MyFirstFSH.html
下面一步为前台添加cairngorm框架 ,为了项目结构更加的条理,下面我们把前台从现在的后台中分离出来,
1.首先新建一个flex project,web application type 为none,

填入项目名称flex,直接下一步知道finish。然后把原先项目的.actionScriptProperties和.flexProperties 文件复制到新建的flex工程,直接覆盖原来的。
2.右击项目flex,在项目build path属性添加cairngorm.swc文件,

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics