- 浏览: 249869 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
探索者_技术:
不错 讲解的比较详细
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 6681众所周知,Spring以其强大而又灵活的IoC管理功能著称。I ... -
从appfuse开始学习Spring和Hibernate - (2)Spring启动log
2012-05-05 21:35 2357分析appfuse的详细的启动日志来看看Spring的启动过程 ... -
Spring 事务在多线程环境下的传播
2012-05-04 21:42 8792有时候需要使用多线程来提高对于CPU,尤其是多核CPU的利用率 ... -
关于Hashtable和HashMap, Vector和ArrayList
2012-05-01 09:41 1910在功能上讲Hashtable和HashMap, Vector和 ... -
JVisualVM还真是不错
2012-04-27 21:38 1615最近再看Java 性能的问题。一直都习惯使用Jconsole和 ... -
Java String 详解 - String Literal
2012-04-08 14:23 2315为了性能和内存资源上 ... -
Java Management Extensions (JMX) 学习笔记- 程序管理和监控
2012-04-07 20:25 4208在学习Tomcat 7 的源代码的时候发现,大量运用到了JMX ... -
Tomcat 7 源码分析 - 初始化 class loader
2012-04-07 19:24 2392Bootstrap 在启动的时候初 ... -
Tomcat 7 源码分析 - 启动概览 bootstrap
2012-04-07 14:57 2354先大致浏览一下整个启 ... -
Tomcat 7 源码分析 - 下载 tomcat source code 并导入eclipse
2012-04-07 09:23 17414准备好好研究学习一下tomcat 7 的源代码,那么第一步就是 ... -
Java Generic 学习
2012-04-06 19:34 1538泛型是Java 5开始引入的一个语言级别的特性 ... -
Java 执行过程详解 - JVM 生命周期
2012-04-04 12:01 8638Java的执行过程也就是JVM从启动到退出的过程。JVM的运行 ... -
Java System 类详解 - properties and environment variables
2012-04-04 11:32 2474在环境配置中我们经常需要知道或者设置系统属性值和环境变量。系统 ... -
Java System 类详解 - arraycopy
2012-04-04 11:01 2505System类提供了数组copy函数: public ... -
Java System 类详解 - in, out, err
2012-04-04 07:46 10447几乎所有的都用过这个System类吧,因为大家学习的第一个语句 ... -
关于 sun.misc.Unsafe
2012-04-03 15:31 4587今天在看java.util.concurrent.atomic ... -
如何提高代码质量
2012-04-02 20:08 1158本文是写给开 ... -
在Java中什么是 Primitive 和 Reference 类型
2012-03-24 23:14 2838Java虽然是个面向对象的语言,也声称“Everything ... -
Java 并发编程 - Programming Concurrency on the JVM
2012-03-24 23:08 3453这几个月一直在做性能调优的工作,以前总是进行功能的开发,从来不 ... -
如何进行Java EE性能测试与调优
2012-03-24 20:51 1301性能测试的目标 性能 ...
相关推荐
appfuse对java web开发很有帮助,里边用了分层的思想进行开发的
appfuse2.0.2 Struts2 hibernate Spring 构建的基于SQLServer2005 的ssh2项目的过程全记录 网上很多帖子介绍appfuse2构建过程的,但是基于SQLServer2005的没有,顶多一笔带过,另外对于期间出现的各种问题也没有个说明,...
在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。本文的内容基于...
appfuse 有struts2+hibernate+spring的整合 springmvc+hibernate+spring的整合 多模块,但模块都有 学习开发参考使用非常方便 可以到官方下载最新版的,我只是把自己下载的打包整理一下 注意哈,都是基于maven的...
建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2 spring3.0 hibernte3.3 struts2.1.8
Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持
密码:ilovejava.taobao.com
Appfuse 一个开放源码的项目和应用程序,帮助我们快速而高效的地开发。 Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry...
主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.
Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...
使用appfuse进行网站开发,appfuse是关于Spring,Struts2,MVC3,Hibernate等技术的案例,可以加快建设网站。 1.文档说明。 2.可以执行的案例,亲测无误。
06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬
关于企业人员管理的struts应用样例,包含人员添加、信息修改及注销等。
AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...
使用 AppFuse 快速构建 java 使用 AppFuse 快速构建 java
AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Ant、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL)于一身的Web开发框架。AppFuse提供了Web...
使用appfuse2.0,下载过来的实例源码,没有jar包
自己学习appfuse2的相关日志,里面包含了一些在网上已经文档的综合.