- 浏览: 254231 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
探索者_技术:
不错 讲解的比较详细
Java 执行过程详解 - JVM 生命周期 -
besterzhao:
学习了
关于 sun.misc.Unsafe -
lliiqiang:
属性变量被设定为不可更改的,外界传递的对象复制一份再保存到对象 ...
不可变类(immutable class) -
xunke515:
有启发.感谢
Java System 类详解 - in, out, err -
bo_hai:
你说没错。问题是:怎么样把ClassA中的事务传播到Class ...
Spring 事务在多线程环境下的传播
千里之行,始于足下。结合例子学习概念,比较靠谱。本文介绍如何开始从appfuse开始学习Spring和Hibernate。
如果你还没有安装mysql,请先安装。同时也建议你安装一个workbench来方便管理数据库。
1. 利用Maven构建appfuse项目
万能的Maven提供了很多丰富的Archetype让你可以轻松构建一个包含了你想使用的框架的基本项目,而避免让你从零开始。你可以在这里(http://docs.codehaus.org/display/MAVENUSER/Archetypes+List)查看Maven提供的所有Archetype。
在命令行输入下面的命令,你就可以根据向导生成一个appfuse框架了。
第一步就是选择Archetype。请输入:
下面的步骤很直观,不再赘述。
或者用下面的命令一步搞定:
2. 利用Eclipse的Maven插件m2eclipse,你可以导入刚刚创建的项目:appfuse。导入过程需要几分钟,maven需要下载一些依赖的lib。
产生的项目里面只有一个类:App,其他的类呢?原来默认生成的项目是嵌入式的,其他的类都作为jar被引入而非源代码。如果你想生成源代码在这个项目里面,可以这样:
你可能会遇到错误:
添加:<trunk>https://svn.java.net/svn/appfuse~svn/</trunk>到下面的位置
你可能会遇到错误:
这个是因为不支持maven3,需要用maven2. 成功以后看看你的项目里面会多了很多包和类,这些就是appfuse的源代码了。
事情还没完,LabelTag会有编译错误:
这是因为spring版本需要升级,修改为:
3. 运行
输入下面的命令启动这个app:
如果你遇到了这个错误(不知道这个算不算bug):
那么你需要添加spring-aspects dependency。(你可以利用maven插件工具查找并添加)
再次运行,成功后在浏览器打开http://localhost:8080.
默认有两个用户:admin/admin, user/user
4. 在Eclipse里面运行
配置Maven Build:
5. 加入debug和JMX远程监控参数
加入这些JVM参数之后,就可以在eclipse里面debug了。同时可以用JConsole或JVisualVM来监控JVM了。
6. 配置log4j
Eclipse能显示的日志的大小是有限的,所以可以让日志写到文件里面以便分析。修改log4j.xml,添加FileAppender:
修改spring的日志级别为TRACE:
这样我们就能在项目根目录下面的appfuse.log里面看到非常详细的日志了。下一步就是要分析这个日志来看看Spring是怎么样工作的。
关于appfuse你可以参考:http://appfuse.org/display/APF/AppFuse+QuickStart
如果你还没有安装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
评论
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
楼主知道什么原因不?求交流
[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
顶楼主!!
发表评论
-
Spring 源码学习 - ClassPathXmlApplicationContext
2012-05-06 11:47 6791众所周知,Spring以其强大而又灵活的IoC管理功能著称。I ... -
从appfuse开始学习Spring和Hibernate - (2)Spring启动log
2012-05-05 21:35 2440分析appfuse的详细的启动日志来看看Spring的启动过程 ... -
Spring 事务在多线程环境下的传播
2012-05-04 21:42 8885有时候需要使用多线程来提高对于CPU,尤其是多核CPU的利用率 ... -
关于Hashtable和HashMap, Vector和ArrayList
2012-05-01 09:41 1951在功能上讲Hashtable和HashMap, Vector和 ... -
JVisualVM还真是不错
2012-04-27 21:38 1701最近再看Java 性能的问题。一直都习惯使用Jconsole和 ... -
Java String 详解 - String Literal
2012-04-08 14:23 2426为了性能和内存资源上 ... -
Java Management Extensions (JMX) 学习笔记- 程序管理和监控
2012-04-07 20:25 4289在学习Tomcat 7 的源代码的时候发现,大量运用到了JMX ... -
Tomcat 7 源码分析 - 初始化 class loader
2012-04-07 19:24 2433Bootstrap 在启动的时候初 ... -
Tomcat 7 源码分析 - 启动概览 bootstrap
2012-04-07 14:57 2386先大致浏览一下整个启 ... -
Tomcat 7 源码分析 - 下载 tomcat source code 并导入eclipse
2012-04-07 09:23 17491准备好好研究学习一下tomcat 7 的源代码,那么第一步就是 ... -
Java Generic 学习
2012-04-06 19:34 1588泛型是Java 5开始引入的一个语言级别的特性 ... -
Java 执行过程详解 - JVM 生命周期
2012-04-04 12:01 8704Java的执行过程也就是JVM从启动到退出的过程。JVM的运行 ... -
Java System 类详解 - properties and environment variables
2012-04-04 11:32 2516在环境配置中我们经常需要知道或者设置系统属性值和环境变量。系统 ... -
Java System 类详解 - arraycopy
2012-04-04 11:01 2540System类提供了数组copy函数: public ... -
Java System 类详解 - in, out, err
2012-04-04 07:46 10515几乎所有的都用过这个System类吧,因为大家学习的第一个语句 ... -
关于 sun.misc.Unsafe
2012-04-03 15:31 4681今天在看java.util.concurrent.atomic ... -
如何提高代码质量
2012-04-02 20:08 1190本文是写给开 ... -
在Java中什么是 Primitive 和 Reference 类型
2012-03-24 23:14 2891Java虽然是个面向对象的语言,也声称“Everything ... -
Java 并发编程 - Programming Concurrency on the JVM
2012-03-24 23:08 3530这几个月一直在做性能调优的工作,以前总是进行功能的开发,从来不 ... -
如何进行Java EE性能测试与调优
2012-03-24 20:51 1346性能测试的目标 性能 ...
相关推荐
AppFuse是一个模块化的框架,它整合了多个流行的技术,如Spring、Hibernate、Struts和WebWork等。在这个特定的版本中,AppFuse Light使用了WebWork和Spring框架,同时依赖JDBC来处理数据存储。 **WebWork** WebWork...
appfuse2.0.2 Struts2 hibernate Spring 构建的基于SQLServer2005 的ssh2项目的过程全记录 网上很多帖子介绍appfuse2构建过程的,但是基于SQLServer2005的没有,顶多一笔带过,另外对于期间出现的各种问题也没有个说明,...
5. **AppFuse示例**:`appfuse2`可能是包含一个使用JSF、Spring和Hibernate的示例项目。AppFuse是一个快速应用开发框架,它提供了一个基础架构,用于创建基于Spring、Hibernate和JSF的Web应用程序。通过分析这个项目...
这个框架集成了Spring、Hibernate和Struts等主流技术,使得开发者能够迅速构建出符合MVC架构的应用。在最新的版本2.1.0-M2中,AppFuse 提供了基本(basic)和模块化(modular)两种类型的原型,以便于开发者根据项目...
AppFuse 是一个开源项目,旨在简化Java Web应用程序的...同时,AppFuse提供了一个很好的起点,因为它集成了许多常用库,如Hibernate(持久层框架)和Spring(IoC容器),可以帮助你快速搭建起一个完整的Java Web项目。
在jbpm 1.2的实践中,我们将讨论如何集成appfuse和Spring Modules,以构建一个更强大的企业级应用。 AppFuse是一个开源项目,它提供了创建企业级Web应用程序的基础。它通过整合各种开源技术,如Spring、Hibernate、...
它使用了多种流行的技术栈,如 Spring Boot、Hibernate、Thymeleaf 和 Maven,使得开发者可以更高效地开发基于 Java 的 Web 应用。在本文中,我们将深入了解如何安装并部署 AppFuse 项目。 **1. 预备知识** 在开始...
通过理解和学习AppFuse的这些组件及其相互作用,你可以更好地掌握Java Web开发的基础,并且能够利用AppFuse快速创建自己的项目。对于初学者来说,这是一个很好的起点,而对于经验丰富的开发者,它则可以作为一个高效...
AppFuse是一个开源项目,旨在简化Web应用程序的开发,它提供了一个基础框架,可以帮助开发者快速启动新项目,整合了Spring、Hibernate、Struts等流行技术。在本教程中,我们将深入了解如何利用Maven这个强大的构建...
这部分内容对于初学者尤为重要,因为它覆盖了如何从零开始搭建基于 AppFuse 的项目,并介绍了 Maven 的基本概念,例如依赖管理、构建生命周期等。 #### 商业支持 (Commercial Support) 除了免费的社区支持之外,...
它集成了多种流行的技术,包括 Spring、Hibernate、iBatis、Struts、Xdoclet 和 JUnit,同时也支持 Taperstry 和 JSF 框架,帮助开发者构建基于Java的Web应用程序。AppFuse 的目标是简化项目的初始化过程,通过预...
AppFuse 是一个由 Matt Raible 创建的开源项目,它为初学者提供了一个基础的 J2EE 框架,用于演示如何集成多个流行的技术,如 Spring、Hibernate、iBatis、Struts、xDcolet、JUnit、Taperstry 和 JSF 等。...
要使用 AppFuse 构建应用,首先你需要下载 AppFuse 的源码,并安装 Maven(一个项目管理和综合工具)。然后,通过运行 Maven 命令,你可以创建一个新的 AppFuse 项目。这个命令会生成一个包含所有必要文件和目录结构...
AppFuse分为1.x和2.0两个主要版本,其中2.0版是重构建的,采用了Maven 2作为构建工具,而1.x版本则使用Ant。 Maven 2的引入带来了许多优势,包括自动下载依赖项、简化维护(因为所有组件可以一次编译)以及方便最终...
1. **下载AppFuse**: 从AppFuse的官方网站下载最新版本的源码包(本文使用的版本是appfuse-tapestry-1.9.3-src.zip)。将其解压至所需的位置。 2. **安装JDK**: 下载并安装最新版本的JDK(本文使用JDK1.5.0),...
通过学习和使用AppFuse,开发者能够快速掌握现代Java Web开发的关键技术,如Maven构建、Spring框架、Hibernate ORM,以及Web层和安全的最佳实践。这个过程中,理解和应用POM.xml、依赖注入、对象关系映射、MVC模式、...
AppFuse是一个开源的Java Web应用程序框架,它集成了多种流行的开发工具和技术栈,如Spring、Hibernate、Struts等,帮助开发者快速构建Web应用程序。AppFuse的目标是通过提供一个预配置的、可扩展的应用程序骨架来...
2. **集成流行框架**:AppFuse 集成了诸如 Spring、Hibernate、MyBatis、Apache Tiles、Velocity 等广泛使用的 Java 开发框架,帮助开发者构建稳定且可扩展的应用。 3. **统一的配置**:通过整合各框架的配置,...