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

从appfuse开始学习Spring和Hibernate - (1)构建项目

阅读更多
千里之行,始于足下。结合例子学习概念,比较靠谱。本文介绍如何开始从appfuse开始学习Spring和Hibernate。
如果你还没有安装mysql,请先安装。同时也建议你安装一个workbench来方便管理数据库。

1. 利用Maven构建appfuse项目
万能的Maven提供了很多丰富的Archetype让你可以轻松构建一个包含了你想使用的框架的基本项目,而避免让你从零开始。你可以在这里(http://docs.codehaus.org/display/MAVENUSER/Archetypes+List)查看Maven提供的所有Archetype。
在命令行输入下面的命令,你就可以根据向导生成一个appfuse框架了。
mvn archetype:generate

第一步就是选择Archetype。请输入:
org.appfuse.archetypes:appfuse-basic-spring

下面的步骤很直观,不再赘述。
或者用下面的命令一步搞定:
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-spring-archetype -DarchetypeVersion=2.1.0 -DgroupId=study.spring -DartifactId=appfuse -DarchetypeRepository=http://oss.sonatype.org/content/repositories/appfuse


2. 利用Eclipse的Maven插件m2eclipse,你可以导入刚刚创建的项目:appfuse。导入过程需要几分钟,maven需要下载一些依赖的lib。

产生的项目里面只有一个类:App,其他的类呢?原来默认生成的项目是嵌入式的,其他的类都作为jar被引入而非源代码。如果你想生成源代码在这个项目里面,可以这样:
mvn appfuse:full-source

你可能会遇到错误:
[ERROR] Failed to execute goal org.codehaus.mojo:appfuse-maven-plugin:2.0.2:full
-source (default-cli) on project appfuse: svn: PROPFIND request failed on '/svn/
appfuse/tags/APPFUSE_2.0.2/data/common/src'
[ERROR] svn: Connection refused: connect

添加:<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>到下面的位置
<configuration>
					<genericCore>${amp.genericCore}</genericCore>
					<fullSource>${amp.fullSource}</fullSource>
					<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>
				</configuration>

你可能会遇到错误:
[ERROR] Failed to execute goal org.codehaus.mojo:appfuse-maven-plugin:2.0.2:full
-source (default-cli) on project appfuse: Execution default-cli of goal org.code
haus.mojo:appfuse-maven-plugin:2.0.2:full-source failed: A required class was mi
ssing while executing org.codehaus.mojo:appfuse-maven-plugin:2.0.2:full-source:
org/codehaus/plexus/embed/Embedder

这个是因为不支持maven3,需要用maven2. 成功以后看看你的项目里面会多了很多包和类,这些就是appfuse的源代码了。
事情还没完,LabelTag会有编译错误:
The type org.springframework.core.env.EnvironmentCapable cannot be resolved. It is indirectly referenced from required .class files

这是因为spring版本需要升级,修改为:
<spring.version>3.1.1.RELEASE</spring.version>


3. 运行
输入下面的命令启动这个app:
mvn jetty:run

如果你遇到了这个错误(不知道这个算不算bug):
[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.0:compil
e (default) on project my-project-domain: The artifact org.springframework:sprin
g-aspects referenced in aspectj plugin as an aspect library, is not found the pr
 oject dependencies -> [Help 1]


那么你需要添加spring-aspects dependency。(你可以利用maven插件工具查找并添加)
<dependency>
        	<groupId>org.springframework</groupId>
        	<artifactId>spring-aspects</artifactId>
        	<version>3.1.1.RELEASE</version>
        </dependency>


再次运行,成功后在浏览器打开http://localhost:8080.

默认有两个用户:admin/admin, user/user

4. 在Eclipse里面运行
配置Maven Build:



5. 加入debug和JMX远程监控参数
-server -Xms256m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=128m -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n -Dcom.sun.management.jmxremote.port=9000
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false

加入这些JVM参数之后,就可以在eclipse里面debug了。同时可以用JConsole或JVisualVM来监控JVM了。

6. 配置log4j
Eclipse能显示的日志的大小是有限的,所以可以让日志写到文件里面以便分析。修改log4j.xml,添加FileAppender:
<appender name="FILE" class="org.apache.log4j.FileAppender">
    	<param name="File" value="appfuse.log"/>
    	<param name="Append" value="false" />
        <layout class="org.apache.log4j.PatternLayout">
          <param name="ConversionPattern" value="%t %-5p %c{2} - %m%n"/>
        </layout> 
    </appender>
   <root>
        <level value="TRACE"/>
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
    </root>

修改spring的日志级别为TRACE:
<logger name="org.springframework">
        <level value="TRACE"/>
    </logger>

这样我们就能在项目根目录下面的appfuse.log里面看到非常详细的日志了。下一步就是要分析这个日志来看看Spring是怎么样工作的。


关于appfuse你可以参考:http://appfuse.org/display/APF/AppFuse+QuickStart











  • 大小: 118.8 KB
1
0
分享到:
评论
2 楼 hailongai33 2014-05-19  
我最终运行的结果 为 :
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4:14.931s
[INFO] Finished at: Mon May 19 17:08:43 CST 2014
[INFO] Final Memory: 6M/129M
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'archetype' in the current project and in the
plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the
repositories [local (C:\Users\acer\.m2\repository), central (http://repo.maven.a
pache.org/maven2)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundF
orPrefixException

楼主知道什么原因不?求交流
1 楼 小卡kare 2013-05-01  
顶楼主!!

相关推荐

    appfuse-light-webwork-spring-jdbc-1.8.2.zip_Java 8_appfuse_webwo

    AppFuse是一个模块化的框架,它整合了多个流行的技术,如Spring、Hibernate、Struts和WebWork等。在这个特定的版本中,AppFuse Light使用了WebWork和Spring框架,同时依赖JDBC来处理数据存储。 **WebWork** WebWork...

    appfuse2.0.2 Struts2 hibernate Spring 构建的基于SQLServer2005 的ssh2项目的过程全记录

    appfuse2.0.2 Struts2 hibernate Spring 构建的基于SQLServer2005 的ssh2项目的过程全记录 网上很多帖子介绍appfuse2构建过程的,但是基于SQLServer2005的没有,顶多一笔带过,另外对于期间出现的各种问题也没有个说明,...

    jsf+spring+hibernate的架构和例题

    5. **AppFuse示例**:`appfuse2`可能是包含一个使用JSF、Spring和Hibernate的示例项目。AppFuse是一个快速应用开发框架,它提供了一个基础架构,用于创建基于Spring、Hibernate和JSF的Web应用程序。通过分析这个项目...

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2

    这个框架集成了Spring、Hibernate和Struts等主流技术,使得开发者能够迅速构建出符合MVC架构的应用。在最新的版本2.1.0-M2中,AppFuse 提供了基本(basic)和模块化(modular)两种类型的原型,以便于开发者根据项目...

    appfuse-tutorial-struts-1.6.zip_appfuse

    AppFuse 是一个开源项目,旨在简化Java Web应用程序的...同时,AppFuse提供了一个很好的起点,因为它集成了许多常用库,如Hibernate(持久层框架)和Spring(IoC容器),可以帮助你快速搭建起一个完整的Java Web项目。

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

    在jbpm 1.2的实践中,我们将讨论如何集成appfuse和Spring Modules,以构建一个更强大的企业级应用。 AppFuse是一个开源项目,它提供了创建企业级Web应用程序的基础。它通过整合各种开源技术,如Spring、Hibernate、...

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

    它使用了多种流行的技术栈,如 Spring Boot、Hibernate、Thymeleaf 和 Maven,使得开发者可以更高效地开发基于 Java 的 Web 应用。在本文中,我们将深入了解如何安装并部署 AppFuse 项目。 **1. 预备知识** 在开始...

    appfuse

    通过理解和学习AppFuse的这些组件及其相互作用,你可以更好地掌握Java Web开发的基础,并且能够利用AppFuse快速创建自己的项目。对于初学者来说,这是一个很好的起点,而对于经验丰富的开发者,它则可以作为一个高效...

    使用appfuse构建环境

    AppFuse是一个开源的Java Web应用程序框架,用于快速搭建基于Spring MVC、Spring Security、Hibernate等技术的应用程序。它提供了一套完整的开发模板,使得开发者能够专注于业务逻辑的实现,而无需过多关注底层架构...

    MAVEN 搭建APPFUSE

    AppFuse是一个开源项目,旨在简化Web应用程序的开发,它提供了一个基础框架,可以帮助开发者快速启动新项目,整合了Spring、Hibernate、Struts等流行技术。在本教程中,我们将深入了解如何利用Maven这个强大的构建...

    appfuse-documentation-2.1.0官方文档

    这部分内容对于初学者尤为重要,因为它覆盖了如何从零开始搭建基于 AppFuse 的项目,并介绍了 Maven 的基本概念,例如依赖管理、构建生命周期等。 #### 商业支持 (Commercial Support) 除了免费的社区支持之外,...

    AppFuse学习笔记(J2EE入门级框架)

    AppFuse 是一个由 Matt Raible 创建的开源项目,它为初学者提供了一个基础的 J2EE 框架,用于演示如何集成多个流行的技术,如 Spring、Hibernate、iBatis、Struts、xDcolet、JUnit、Taperstry 和 JSF 等。...

    AppFuse1.x快速构建J2ee应用

    要使用 AppFuse 构建应用,首先你需要下载 AppFuse 的源码,并安装 Maven(一个项目管理和综合工具)。然后,通过运行 Maven 命令,你可以创建一个新的 AppFuse 项目。这个命令会生成一个包含所有必要文件和目录结构...

    APPFUSE工具研究.doc

    AppFuse分为1.x和2.0两个主要版本,其中2.0版是重构建的,采用了Maven 2作为构建工具,而1.x版本则使用Ant。 Maven 2的引入带来了许多优势,包括自动下载依赖项、简化维护(因为所有组件可以一次编译)以及方便最终...

    使用 AppFuse 快速构建 java

    1. **下载AppFuse**: 从AppFuse的官方网站下载最新版本的源码包(本文使用的版本是appfuse-tapestry-1.9.3-src.zip)。将其解压至所需的位置。 2. **安装JDK**: 下载并安装最新版本的JDK(本文使用JDK1.5.0),...

    ANT构建AppFuse

    通过学习和使用AppFuse,开发者能够快速掌握现代Java Web开发的关键技术,如Maven构建、Spring框架、Hibernate ORM,以及Web层和安全的最佳实践。这个过程中,理解和应用POM.xml、依赖注入、对象关系映射、MVC模式、...

    AppFuse Primer

    AppFuse是一个开源的Java Web应用程序框架,它集成了多种流行的开发工具和技术栈,如Spring、Hibernate、Struts等,帮助开发者快速构建Web应用程序。AppFuse的目标是通过提供一个预配置的、可扩展的应用程序骨架来...

    使用 AppFuse 快速构建 J2EE 应用

    2. **集成流行框架**:AppFuse 集成了诸如 Spring、Hibernate、MyBatis、Apache Tiles、Velocity 等广泛使用的 Java 开发框架,帮助开发者构建稳定且可扩展的应用。 3. **统一的配置**:通过整合各框架的配置,...

Global site tag (gtag.js) - Google Analytics