这段时间在家考公务员等成绩,闲得无事翻看以前上学写的小项目,觉得基础真的还是特别的重要。因此趁着这段空闲时间决定把以前的知识梳理一下,万一这次公务员没戏,再去找工作时不至于忘却了以前的记忆。那么今天就先从框架整合项目来入手吧。这次整合的是struts,spring以及mybatis,为什么数据持久层框架没有使用hibernate,因为我个人觉得mybatis的sql比hibernate的hql好用。但是hibernate毕竟是很优秀的数据持久层框架,所以之后我还是会再整理一下ssh的整合的。那么,下面我们就来看看如何搭建一个ssm的项目环境。
前言
首先介绍一下这个小项目,没有复杂的逻辑,只是一点简单的增删改查。以前在学校做练习时,我都是把所有的文件放到一个web项目下,这样会显得特别的臃肿。在工作中我学习到了将不同的文件放到不同的项目下,然后再将它们引用到web项目下面就好了,这样web项目就可以只存放一些配置文件,资源文件以及脚本文件,这样使得整个项目看起来清晰很多。那么这次要说的整合也采用这样的方式,将会有存放配置文件的web项目ssm,存放业务逻辑代码的Java项目ssm-business,以及存放jar包的java项目ssm-lib,最后我们将ssm-business和ssm-lib引入到ssm即可。
项目搭建
- 创建web项目ssm,放置一些配置文件。
- 创建java项目ssm-lib,将项目中使用到的jar包放置在src目录下。
- 创建java项目ssm-business,在这里主要存放项目中关于业务逻辑方面的代码。
创建完毕后项目就是这样一个结构:
现在我们需要将ssm-lib和ssm-business引入到ssm中,具体做法如下:
- 在web项目ssm上右键–>属性,选择Java Build Path,选择Projects页签,点击Add,接着勾选要引入的两个项目ssm-lib和ssm-business,这样就把这两个项目引入到当前项目中了。这时还需要将ssm-lib中的jar引入到ssm-business中。在ssm-business上右键–>属性,选择Java Build Path,选择Libraries,点击Add Jars,选择ssm-lib中的全部jar包即可。
- 将ssm-lib和ssm-business引入到部署路径中去。首先来引入ssm-lib,在web项目ssm上右键–>属性,选择Deployment Assembly,点击Add,选择Java Build Path Entries,点击Next,选择全部的jar包。接下来引入ssm-business,依然点击Add,选择Project,点击Next,选择ssm-business,点击Finish。这时,当我们将web项目ssm部署到服务器上时,就可以将其余两个项目也一起打入war包了。
这样一来,项目的基本架构就搭建完成了。接下来我们就来看看具体的struts,spring和mybatis是如何整合的。
整合
- spring的环境搭建
在web项目ssm的src目录下创建包config,并创建spring的配置文件applicationContext.xml,接着在WEB-INF下的web.xml中加入配置代码:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/applicationContext.xml</param-value>
</context-param>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 整合mybatis
- 创建mybatis配置文件sql-map-config.xml
- 创建数据库配置文件system.config.properties
- 创建sql配置文件sqlConfig.xml
- 在applicationContext.xml中加入如下配置代码:
<!--配置数据源,这里使用的是dbcp来连接数据库-->
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driverClassName}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</bean>
<!-- 配置事务管理器,注意这里的dataSource和SqlSessionFactoryBean的dataSource要一致,不然事务就没有作用了 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="myDataSource" />
</bean>
<!--配置mybatis的session工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="configLocation" value="classpath:config/sql-map-config.xml"/>
</bean>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 整合struts
- 在src目录下创建struts.xml文件,以及在config/struts/下创建具体的配置文件mystruts.xml。
- 在web.xml中加入如下配置代码:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
接下来就可以在ssm-business中编写业务逻辑的代码了。这里就不赘述业务逻辑的编写过程了,文章末尾会有整个项目的源代码,可供参考。
结束语
经过工作和这一段休息时间的练习,我对实际产品项目的搭建有了一定的了解,当然以上搭建的只是一个很简单的练习案例,不足以上升的实际生产的高度,但是我认为这还是对我以后的工作有一定的帮助。不多说了,希望赶紧出成绩吧,其实我还是很喜欢写代码的,好纠结的过程。