从appfuse开始学习Spring和Hibernate - (1)构建项目
千里之行,始于足下。结合例子学习概念,比较靠谱。本文介绍如何开始从appfuse开始学习Spring和Hibernate。
如果你还没有安装mysql,请先安装。同时也建议你安装一个workbench来方便管理数据库。
1. 利用Maven构建appfuse项目
万能的Maven提供了很多丰富的Archetype让你可以轻松构建一个包含了你想使用的框架的基本项目,而避免让你从零开始。你可以在这里([url]http://docs.codehaus.org/display/MAVENUSER/Archetypes+List[/url])查看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.codehaus.mojo:appfuse-maven-plugin:2.0.2:full-source failed: A required class was missing 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:compile (default) on project my-project-domain: The artifact org.springframework:spring-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>
再次运行,成功后在浏览器打开[url]http://localhost:8080[/url].
默认有两个用户:admin/admin, user/user
4. 在Eclipse里面运行
配置Maven Build:
[img]http://dl.iteye.com/upload/attachment/0067/6071/a9dc2d08-c0c7-33ee-a0ca-0d5bc5ea6eb6.png[/img]
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你可以参考:[url]http://appfuse.org/display/APF/AppFuse+QuickStart[/url]
从appfuse开始学习Spring和Hibernate - (1)构建项目相关推荐
- ssh整合mysql不能自动生成表_ssh整合思想 Spring与Hibernate的整合 项目在服务器启动则自动创建数据库表...
Spring整合Hibernate Spring的Web项目中,web.xml文件会自动加载,以出现欢迎首页.也可以在这个文件中对Spring的配置文件进行监听,自启动配置文件, 以及之前Struts ...
- 一步步学习 Spring Data 系列之JPA(一)
2019独角兽企业重金招聘Python工程师标准>>> 大概有半年多没有写博客了,主要是最近忙于工作,也没来得及与大家分享技术.当然现在的技术大多都有人写其博客分享了,也找不到合适写 ...
- 学习Spring Boot
Spring boot 是什么 ? 简单说, spring boot 是一个构建项目的工具, 一个脚手架. Spring boot 能干什么? spring boot 做非常少的配置就可以构建生产级别 ...
- Java新手如何学习Spring、Struts、Hibernate三大框架?
spring,hibernate,struts 是JavaEE方向企业使用较多的几个框架技术,所以就会很多人想去学习这几个框架,当然这几个框架流行的时间也比较长了,相对资料也会比较多,但是适合新手的并 ...
- Spring (1) 认识Spring、 介绍Spring特点、解答为什么学习Spring
一.Spring介绍 简介 The Spring Framework provides a comprehensive programming and configuration model for ...
- 整合Struts2、Spring、Hibernate构建J2EE应用
[论文摘要] J2EE即是以Java 2平台为基础的体系结构,又是一组旨在简化企业解决方案的开发.部署.运行.维护等相关复杂问题的技术规范与指南.Struts2.Spring.Hibernate是当今 ...
- 2小时学习Spring Boot 2019版本 代码一样推送至github上面去
简介:<2小时学习Spring Boot>后续进阶课程,主要讲述了Spring Boot针对Web方面的相关技巧 讲师实战课程<Spring Boot微信点餐系统> http: ...
- Spring MVC3 Hibernate CRUD示例应用程序
学习从HelloWorld应用程序开始的任何Web框架都是一个好主意. 一旦我们熟悉了框架配置,最好做一个CRUD(创建,读取,更新,删除)应用程序,该应用程序涵盖Web框架的各个方面,例如验证,请求 ...
- Struts2和Spring和Hibernate应用实例
Struts2.Spring和Hibernate应用实例 Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用.作为最成功的Web框架,Struts自然拥有众多的优点 ...
- Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
近期在知乎看到一句话,保持学习的有一种是你看到了很多其它的牛人,不甘心,真的不甘心. Spring和hibernate整合的时候,jsp页面做展现,发现展现属性出现: org.apache.jaspe ...
最新文章
- myflow.js 工作流类扩展
- Java Web整合开发(14) -- Struts 1.x 概述
- SAP 物料XXXXX的强制帐户设置 (输入帐户设置类别) 的问题解决方法
- 正确地kill java历程
- matlab显示曲线图中某个点的坐标值
- java 高效加减乘除_java简单加减乘除
- java OOP及相关基础知识汇总(转)
- GIT入门笔记(2)- 典型的工作模式
- 郴州大数据产业招商会在深举行,中琛源科技签约智慧水务项目
- HDU 1251 - 统计难题(字典树模板题)
- POJ 1873 The Fortified Forest
- logout退出功能是怎么实现的?login登陆功能室怎么实现的
- 反爬虫绕过初级——添加http header和gzip解压处理
- python装饰对象_python基础-面向对象(装饰器)
- linux免安装mysql_linux上免安装版MySQL5.7.18的教程详解
- Swift 3.0 语法
- OSCP-Pelican(Exhibitor、gcore提权)
- CF/TC 做题计划
- 【操作系统】文件系统大作业
- NCR Shuffle算法原理