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

appfuse2項目的详细開發流程

阅读更多

 學習了Appfuse2一些時間,把自己使用appfuse2開發項目的方法流程總結一下。也希望大家可以给予意见指点一下……

1、創建工程(這里用的是Struts2),命令為:
mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0 -DgroupId=com.mycompany.app -DartifactId=myproject

2、修改數據庫連線信息(我用的是mysql),進入myproject底下打開pom.xml文件,修改連線帳號密碼

xml 代码
  1. <dbunit.dataTypeFactoryName>org.dbunit.dataset.datatype.DefaultDataTypeFactorydbunit.dataTypeFactoryName>  
  2.         <dbunit.operation.type>CLEAN_INSERTdbunit.operation.type>  
  3.         <hibernate.dialect>org.hibernate.dialect.MySQLInnoDBDialecthibernate.dialect>  
  4.         <jdbc.groupId>mysqljdbc.groupId>  
  5.         <jdbc.artifactId>mysql-connector-javajdbc.artifactId>  
  6.         <jdbc.version>5.0.5jdbc.version>  
  7.         <jdbc.driverClassName>com.mysql.jdbc.Driverjdbc.driverClassName>  
  8.         <jdbc.url>jdbc.url>  
  9.         <jdbc.username>wensonjdbc.username>  
  10.         <jdbc.password>wensonjdbc.password>  

3、設置解決中文顯示問題,防止出現亂碼,詳情請參考:http://wenson.iteye.com/blog/138633

4、下載源代碼。在命令控制臺進入myproject目錄,執行命令:mvn appfuse:full-source,進行源碼下載

5、試運行所建項目。執行命令:mvn jetty:run-war,運行項目。運行成功后在瀏覽器里使用http://localhost:8080即可訪問

6、下面開始創建新的模塊。一般模塊的設計創建有兩種方式,一種是先設計數據庫,再根據數據庫生成pojo,一種是先生成pojo,再根據pojo生成數據庫。appfuse都支持這兩種方式。先使用mvn eclipse:eclipse 命令生成eclipse的項目配置文件,把項目導入到eclipse中。如果用先設計數據庫的方式的話,那么在原先生成的數據中新增數據表,設計好表結構,然后在控制臺執行mvn appfuse:gen-model命令,就會自動生成對應的pojo,然后執行mvn appfuse:gen Dentity=pojoName,即可自動生成dao、service等類。如果使用先生稱pojo類的方式,那么在com.company.model底下先新建一個pojo,使用JPA設置好數據庫映射,然后執行mvn appfuse:gen Dentity=pojoName,即可自動生成dao、service等類。

(提示:AppFuse 制作了一个代码生成工具 ,他生成的代码位于 \target\appfuse\ 目录下面generated-sources内。代码生成工具可以生成绝大部分我们需要的代码,比如 dao 类,service 类,菜单、增删改的 web 页面、配置文件、样本数据,等等。

如果你希望appfuses生成 dao service 类,就在项目根目录下的pom.xml中,把genericCore属性设为false

xml 代码
 
  1. <project>  
  2. ...  
  3.   <build>  
  4.     <plugins>  
  5.       <plugin>  
  6.         <groupId>org.codehaus.mojo</groupId>  
  7.         <artifactId>appfuse-maven-plugin</artifactId>  
  8.         <version>2.0</version>  
  9.         <configuration>  
  10.           <genericCore>true</genericCore> <!-- Set to false if you want Java files generated for your DAOs and Managers -->  
  11.           <fullSource>false</fullSource> <!-- Set to true if you've "full-sourced" your project and changed org.appfuse to your package name -->  
  12.         </configuration>  
  13.         <dependencies>  
  14.           <dependency>  
  15.             <groupId>${jdbc.groupId}</groupId>  
  16.             <artifactId>${jdbc.artifactId}</artifactId>  
  17.             <version>${jdbc.version}</version>  
  18.           </dependency>  
  19.         </dependencies>  
  20.       </plugin>  
  21.     </plugins>  
  22.   </build>  
  23. ...  
  24. </project>  

否则就用 ture ,它可以帮你搞定一切。下面就让我们来运行 “mvn appfuse:gen” 生成代码。)

7、接下來把生成的源代碼寫到源程序中。使用mvn appfuse:install

8、執行mvn jetty:run-war, 即可運行建好生成的項目

分享到:
评论
18 楼 wenson 2008-10-30  
N久沒有再碰Appfuse了,不能再回復大家,抱歉,有空再研究一下。
17 楼 aniude 2008-10-30  
个人不是很建议 gen 代码出来,按着User实体的操作走一遍基本可以把整个处理流程弄清楚了.
16 楼 aniude 2008-10-30  
用mvn jetty:run跑程序就可以,不用run-war,可以节省时间
15 楼 azhoujun 2008-10-24  
我使用的是oracle数据库,建立一张表之后,在控制台mvn appfuse:gen-model命令,结果把所有的表,包括系统表都生成了POJO了??!!
目前有没有办法只生成一张表的POJO啊?

我在pom.xml文件中已经设置了schema的啊。设置如下:
<dbunit.dataTypeFactoryName>org.dbunit.ext.oracle.OracleDataTypeFactory</dbunit.dataTypeFactoryName>
        <dbunit.schema>TEST</dbunit.schema> <!-- Make sure to capitalize the schema name -->
        <dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
        <hibernate.dialect>org.hibernate.dialect.Oracle10gDialect</hibernate.dialect>
        <hibernate.show_sql>true</hibernate.show_sql>
        <jdbc.groupId>oracle</jdbc.groupId>
        <jdbc.artifactId>ojdbc14</jdbc.artifactId>
        <jdbc.version>10.2.0</jdbc.version>
        <jdbc.driverClassName>oracle.jdbc.OracleDriver</jdbc.driverClassName>
        <jdbc.url><![CDATA[jdbc:oracle:thin:@192.168.2.3:1521:test]]></jdbc.url>
        <jdbc.username>test</jdbc.username>
        <jdbc.password>test</jdbc.password>


顺便说一句,其余的操作都没有问题了,import到eclipse中也没有问题了
14 楼 kenchen0805 2008-09-16  
我试过也是这样::@Id @GeneratedValue(strategy=IDENTITY) @GeneratedValue(strategy =GenerationType.AUTO) 然后报错,不知道如何修正
13 楼 gdufo 2008-08-29  
请问两个问题:
1.为什么一对多关系在两个Pojo没有体现?

2 生成ID会生成这样的一行:@Id @GeneratedValue(strategy=IDENTITY) @GeneratedValue(strategy =GenerationType.AUTO) ;这样才对=> @Id @GeneratedValue(strategy =GenerationType.AUTO)

环境Appsue 2.0.2 + mysql5.0


12 楼 gdufo 2008-08-29  
很好,很强大!
11 楼 wenson 2008-08-22  
diegoball 写道
我是先建立一张person表:
create table person(
id bigint(20) not null PRIMARY  key AUTO_INCREMENT,
name varchar(50) not null,
age bigint(20)
);

为什么我在执行mvn appfuse:full-source后,再执行
mvn appfuse:gen-model生成实体的时候会报错:

org.hibernate.MappingException: Unable to load class declared as <mapping class=
"org.appfuse.model.User"/> in the configuration

实际上在hibernate.cfg.xml文件里是做了User类的映射的,而且是路径也是正确:
org.appfuse.model。
(注:这里的user类是appfuse自带的那个类)

这个就需看你具体的code了,仅依照你提供的这些信息,可能还是你的mapping配置除了问题。
10 楼 zhang20084 2008-08-11  
9 楼 diegoball 2008-08-06  
我是先建立一张person表:
create table person(
id bigint(20) not null PRIMARY  key AUTO_INCREMENT,
name varchar(50) not null,
age bigint(20)
);

为什么我在执行mvn appfuse:full-source后,再执行
mvn appfuse:gen-model生成实体的时候会报错:

org.hibernate.MappingException: Unable to load class declared as <mapping class=
"org.appfuse.model.User"/> in the configuration

实际上在hibernate.cfg.xml文件里是做了User类的映射的,而且是路径也是正确:
org.appfuse.model。
(注:这里的user类是appfuse自带的那个类)
8 楼 wenson 2008-07-30  
rethink 写道
对了,我是用mvn appfuse:gen-model先自动生成model,然后再用mvn appfuse:gen生成其他相关类但总报错。
另外,我并没有使用mvn appfuse:full-source和mvn jetty:run-war。


你得先mvn appfuse:full-source獲取源代碼
7 楼 rethink 2008-02-26  
对了,我是用mvn appfuse:gen-model先自动生成model,然后再用mvn appfuse:gen生成其他相关类但总报错。
另外,我并没有使用mvn appfuse:full-source和mvn jetty:run-war。
6 楼 rethink 2008-02-26  
生成dao、service等类时总报错,郁闷啊!LZ是否有解决办法?谢谢!
错误信息:
[INFO] Configuration XML file loaded: D:\temp\kqmis\src\main\resources\hibernate
.cfg.xml
[INFO] Configuration XML file loaded: D:\temp\kqmis\src\main\resources\hibernate
.cfg.xml
[INFO] Configuration Properties file loaded: D:\temp\kqmis\src\main\resources\da
tabase.properties
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] null
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException
        at java.util.Hashtable.put(Hashtable.java:396)
        at java.util.Properties.setProperty(Properties.java:128)
        at org.appfuse.mojo.exporter.AppFuseGeneratorMojo.configureExporter(AppF
useGeneratorMojo.java:231)
        at org.appfuse.mojo.HibernateExporterMojo.doExecute(HibernateExporterMoj
o.java:228)
        at org.appfuse.mojo.exporter.AppFuseGeneratorMojo.doExecute(AppFuseGener
atorMojo.java:251)
        at org.appfuse.mojo.HibernateExporterMojo.execute(HibernateExporterMojo.
java:138)
        at org.appfuse.mojo.exporter.AppFuseGeneratorMojo.execute(AppFuseGenerat
orMojo.java:204)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:447)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:539)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:493)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:463)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:311)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:278)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:143)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)

        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

5 楼 wenson 2008-01-19  
volking 写道
我的习惯是先把数据库见好,里面的表都是有1对多,多对多的关系。请问如何做呢?


请注意以下说明:

引用
如果用先設計數據庫的方式的話,那么在原先生成的數據中新增數據表,設計好表結構,然后在控制臺執行mvn appfuse:gen-model命令,就會自動生成對應的pojo,然后執行mvn appfuse:gen Dentity=pojoName,即可自動生成dao、service等類。
4 楼 volking 2008-01-19  
我的习惯是先把数据库见好,里面的表都是有1对多,多对多的关系。请问如何做呢?
3 楼 qixiaokai 2008-01-03  
很好,很强大
2 楼 wenson 2007-12-22  
xiuxiuxiu 写道
不知道是maven还是appfuse2的关系.
总是没有成功.
好像pom里面的tomcat地址有错之类的...

失败阿@@....


直接使用mvn jetty:run-war就可以了,maven會自動幫你配置運行。但是前提是你的網絡要正常。
1 楼 xiuxiuxiu 2007-12-21  
不知道是maven还是appfuse2的关系.
总是没有成功.
好像pom里面的tomcat地址有错之类的...

失败阿@@....

相关推荐

    appfuse

    AppFuse 是一个开源项目,旨在简化Java Web应用程序的开发过程。它提供了一个基础框架,集成了许多流行的开源库,如Spring、Hibernate、Struts或Spring Boot等,帮助开发者快速搭建应用骨架。AppFuse 可以根据选定的...

    appfuse2学习日记

    - **目的**:Maven 是 AppFuse2 构建过程的核心工具,负责项目依赖管理及构建流程。 - **下载链接**:http://maven.apache.org/download.html - **依赖包下载**:对于网络环境不佳的情况,建议手动下载 AppFuse2 的...

    appfuse学习笔记(一)安装部署

    **AppFuse 学习笔记(一):安装与部署** AppFuse 是一个开源项目,它提供了一种快速构建企业级 Web 应用程序的方式。...通过学习和实践 AppFuse,你可以更好地理解和掌握现代企业级 Web 开发流程,提高开发效率。

    APPFUSE工具研究.doc

    生成AppFuse项目时,可以通过执行特定的Maven命令来创建不同类型的项目,比如基于Struts、Spring或Hibernate的项目。这允许开发者根据项目需求选择最适合的框架组合,进一步提升开发效率。 总的来说,AppFuse通过...

    Appfuse 2.doc

    Appfuse是一款开源的Java Web应用框架,它集成了多种主流技术栈,如Spring、Hibernate、Struts等,旨在简化企业级应用的开发流程。本篇将重点介绍如何通过Maven下载Appfuse 2.0的源码,并进行简单的配置。 #### 二...

    Appfuse开发教程

    **Appfuse开发教程** Appfuse 是一个开源项目,它提供了一种快速开发Web应用程序的方式,尤其在使用Java技术...通过本教程,你可以了解到如何在Appfuse环境中进行完整的应用开发流程,从而提升你的Java Web开发技能。

    Appfuse开发教程.rar

    6. **快速原型开发**:Appfuse通过预设的模板和示例代码,帮助开发者快速创建新项目,减少重复工作,从而更专注于业务逻辑的实现。 7. **模块化设计**:Appfuse采用模块化设计,允许开发者根据需要选择和添加不同的...

    appfuse开发文档

    AppFuse 是一个开源的Web应用程序开发框架,旨在简化Java Web应用程序的构建过程,尤其是在使用Spring、Hibernate或iBATIS等技术栈时。通过AppFuse,开发者可以快速搭建基础的开发环境,节省大约85%的初期开发时间。...

    玩转appfuse--使用appfuse建设MVC网站

    然后,通过Maven命令行或者IDE导入AppFuse项目模板。 2. **项目初始化**:运行AppFuse的生成器,选择合适的项目类型(如基本的MVC应用),指定数据库和编程语言(如Java或Groovy)。 3. **代码生成**:AppFuse会...

    AppFuse 2.0 RC1 Documentation

    这表明AppFuse提供了简化Web开发流程、提高开发效率的多种特性,如模板化代码生成、预配置框架集成等,减少了常见的开发任务负担,让开发者能够专注于业务逻辑的实现。 ### AppFuse 2.0 RC1文档概览 文档由mraible...

    使用 AppFuse 快速构建 java

    AppFuse通过集成多种成熟技术,大大简化了开发流程,使得开发者能够专注于核心业务逻辑的开发,从而极大地提高了开发效率。在未来的工作中,我们可以更加灵活地利用AppFuse这样的工具,不断优化开发流程,提升项目...

    一个appfuse的应用

    AppFuse 使用Maven作为构建工具,整合了Spring、Hibernate、Struts2(或Spring MVC)等流行框架,简化了开发流程。 这个"一个appfuse的应用"是一个基于AppFuse框架构建的小型应用示例。由于描述中提到“一些jar包...

    appfuse 配置说明 doc 格式

    AppFuse是一个开源的Java Web应用程序框架,它集成了多种流行的开源技术如Spring、Hibernate、Struts等,旨在简化Web应用的开发流程,提高开发效率。AppFuse通过提供一套预配置的模板和工具,帮助开发者快速构建出...

    基于AppFuse框架的B2C电子商务系统研究与实现

    AppFuse是一个开源项目,旨在简化Java Web应用的开发。它提供了一个基础结构,开发者可以在此基础上快速构建安全、模块化的应用程序。本项目是关于利用AppFuse框架构建B2C(Business-to-Consumer)电子商务系统的...

    appfuse-documentation-2.1.0官方文档

    - **AppFuse Maven 插件**:讲解如何利用 Maven 插件来简化开发流程。 - **CSS 框架**:介绍如何在项目中使用 CSS 框架来改善界面设计。 - **数据库配置**:提供关于不同数据库配置的信息。 - **集成开发环境 (IDEs)...

    appfuse 学习笔记

    AppFuse 是一个开源项目,旨在加速和简化J2EE应用程序的开发流程。由Matt Raible设计,它作为一款引导性的入门级框架,演示了如何整合多个流行的技术,如Spring、Hibernate、iBatis、Struts、XDoclet、JUnit、...

    jbpm 项目实践 1.2 (集成appfuse spring modules)

    通过以上步骤,我们能构建出一个集成了jbpm工作流、appfuse快速开发特性和Spring Modules扩展功能的高效企业应用。这样的项目实践有助于提升业务流程的自动化程度,减少手动干预,提高工作效率。同时,由于所有组件...

    appfuse使用手册

    在AppFuse项目中,Struts配置文件(struts.xml)定义了动作映射,将URL与Java类关联起来。同时,Struts提供了ActionForm对象来处理请求参数,并将数据传递给模型层。 **三、Hibernate 持久化框架** Hibernate 是一...

Global site tag (gtag.js) - Google Analytics