前言
作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,之前即使写web程序也宁愿使用jetty这样的嵌入式的web server实现,自己写servlet,总感觉从main函数开始都在自己的掌控范围之内,但是这样的方式的确有点原始,也看到各种各样的开源系统使用spring实现web服务,虽然代码总是能够看明白,但是还是不晓得一步步是怎么搭建的,于是抽出一个周末折腾折腾,不搞不知道,原来这玩意能把一个不熟悉的用户搞崩溃,本文主要介绍我是如何搭建一个spring环境的(话说还真的分不清spring和springmvn),虽然在大多数web开发看来这是雕虫小技。
本文使用的环境是eclipse luna+spring比较新的一个版本(按照我选择版本的规则是除非有什么新功能新版本才用,否则尽量不使用最新的版本,然后选择较新的N个版本中使用人数比较多的,例如本文选用的spring版本是4.3.7.RELEASE)。
下面就从纯工程的角度上解释如何一步步的搭建这样的环境的,没有原理,有原理也是我纯属猜测的,没有看过源码。
详细步骤
第一步:创建一个maven工程
这是再熟悉不过的流程了,但是一般我不推荐选择Archetype,只是创建一个simple project就可以了,前者总是创建失败(创建Archetype模式的可以让IDE做更多的事情)。其实在何谓maven工程,在我看来就是一个带有pom.xml的java工程罢了,然后再把代码的路径设置为src/main/java类似这样的结构,所以我们只需要用IDE帮我们创建一个带有pom.xml的工程就可以了,我们自己写一个dependency和build参数。
配置的时候除了填写正确的group id 和artifact id,主要把packaging选择为war,这样可以在tomcat下运行。
第二步:修改工程配置
这里需要修改的配置有两个,只需要注意修改之后的样子就可以了:
Project Facets:虽然不知道这里配置什么的,但是一次次的吃了这个的亏,这里要配置的是Java选择1.6以上(最好1.7吧),然后选择Dynamic Web Module,下方出现如下的界面:
如果没出现则可以先勾掉Dynamic Web Module,然后保存,然后再次点进去Project Facets,选择Dynamic Web Module,这时候就出现了这样的界面,注意最好不要选择3.0,之前遇到过3.0不兼容的问题,jdk1.7 + 2.5版本是可以正常运行的。
点进去“Further configuration avaliable…”进行配置,将Context directory修改成,并选择生成web.xml,保存。如下图:
此时你会看到你的工程结构如下图,src/main目录下出现了java/resources/webapp三个目录。
配置Deployment Assembly,这里配置的Source和Deploy Path,表示在工程部署的时候会将source目录下的内容拷贝到tomcat部署目录/Deploy Path下。这里需要配置的如下图所示:
例如第一条表示会将工程中src/main/java目录下的源代码编译之后放到部署目录/WEB-INF/classes目录下,最后一条表示会将该工程的maven依赖拷贝到部署目录/WEB-INF/lib目录下。据我观察发现,其实tomcat目录运行过程中会将部署部署目录/WEB-INF/classes、部署目录/WEB-INF/lib加入到classpath中,所以将配置文件和编译完成的class文件放到classes下,依赖的jar放到lib目录下都是可以在启动java程序时找得到的。
第三步:下载spring依赖
spring的jar比较多,最基本的功能也需要如下的几个dependency:
<properties > <spring.version >4.3.7.RELEASE </spring.version> </properties > <dependencies > <dependency> <groupId> org.springframework</groupId > <artifactId> spring-context</artifactId > <version> ${spring.version}</version > </dependency> <dependency> <groupId> org.springframework</groupId > <artifactId> spring-core</artifactId > <version> ${spring.version}</version > </dependency> <dependency> <groupId> org.springframework</groupId > <artifactId> spring-beans</artifactId > <version> ${spring.version}</version > </dependency> <dependency > <groupId> org.springframework</groupId > <artifactId> spring-web</artifactId > <version> ${spring.version}</version > </dependency> <dependency> <groupId> org.springframework</groupId > <artifactId> spring-webmvc </artifactId> <version> ${spring.version}</version > </dependency> </dependencies >
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755