`
aijun980204
  • 浏览: 96000 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

flex+cairngorm+spring+hibernate整合实例

    博客分类:
  • flex
阅读更多

准备:
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.        

  7.         public User getUser(Integer id){

  8.                 return userDAO.findById(id);

  9.         }

  10.        

  11.         public UserDAO getUserDAO() {

  12.                 return userDAO;

  13.         }



  14.         public void setUserDAO(UserDAO userDAO) {

  15.                 this.userDAO = userDAO;

  16.         }

  17.        

  18. }
复制代码

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.        

  7.         public String sayHelloTo(String id){

  8.                 User user = new User();

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

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

  11.         }

  12.         public IUserServiceImpl getUserService() {

  13.                 return userService;

  14.         }

  15.         public void setUserService(IUserServiceImpl userService) {

  16.                 this.userService = userService;

  17.         }

  18.        

  19. }
复制代码

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.        

  10.         <bean name="helloWorld"

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

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

  13.                 <property name="userService">

  14.                         <ref local="userService" />

  15.                 </property>

  16.         </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