浏览 4391 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-01-03
散仙,上次给的例子是基于Spring MVC+JDBC的方式做的持久层,本次就来个稍微高级点的使用Spring MVC+JDBC持久模板的方式,来完成一个基于Web的增删改查的小项目,后面会给出基于MyBatics,或Hibernate,JPA方式做持久层,基于Spring MVC整合的小例子。
下面先简单介绍下开发环境: <table class="bbcode"><tr><td>道具</td><td>名称<tr><td>IDE工具</td><td>MyEclipse10<tr><td>web容器</td><td>Tomcat6<tr><td>JDK版本</td><td>1.7<tr><td>数据库</td><td>MySQL5.1<tr><td>环境</td><td>Windows<tr><td>最重要的道具</td><td>屌丝程序员一枚</table> 下面开始开工,在这之前,先来个项目的结构截图,来看下整体概貌。 ac.xml里面的配置: <pre name="code" class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans default-autowire="byName" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd "&gt; &lt;!-- 读取配置文件 --&gt; &lt;bean id="config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt; &lt;property name="locations"&gt; &lt;value&gt;classpath:connection.properties&lt;/value&gt; &lt;/property&gt; &lt;/bean&gt; &lt;!-- 配置事务管理 --&gt; &lt;bean id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt; &lt;/bean&gt; &lt;!-- 配置数据源 --&gt; &lt;bean id="dataSource" name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"&gt; &lt;property name="username" value="${db.username}"&gt;&lt;/property&gt; &lt;property name="password" value="${db.password}"&gt;&lt;/property&gt; &lt;property name="url" value="${db.url}"&gt;&lt;/property&gt; &lt;property name="driverClassName" value="${db.driver}"&gt;&lt;/property&gt; &lt;/bean&gt; &lt;!-- 定义事务通知 --&gt; &lt;tx:advice id="txAdvice" transaction-manager="tx"&gt; &lt;tx:attributes&gt; &lt;tx:method name="*" propagation="REQUIRED"/&gt; &lt;tx:method name="get*" propagation="REQUIRED"/&gt; &lt;tx:method name="add*" propagation="SUPPORTS"/&gt; &lt;tx:method name="delete*" propagation="SUPPORTS"/&gt; &lt;tx:method name="update*" propagation="SUPPORTS"/&gt; &lt;/tx:attributes&gt; &lt;/tx:advice&gt; &lt;!-- 定义aop切面 --&gt; &lt;aop:config&gt; &lt;aop:pointcut expression="execution(* com.qin.dao.impl.*.*(..))" id="pc"/&gt; &lt;aop:advisor pointcut-ref="pc" advice-ref="txAdvice"/&gt; &lt;/aop:config&gt; &lt;!-- 注入数据源 --&gt; &lt;bean name="dao" class="com.qin.dao.impl.UserModelImpl"&gt; &lt;property name="dataSource" ref="dataSource"&gt;&lt;/property&gt; &lt;/bean&gt; &lt;/beans&gt;</pre> qin-servlet.xml里面的配置: <pre name="code" class="xml"> &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;beans default-autowire="byName" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"&gt; &lt;!-- HandlerMapping --&gt; &lt;bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/&gt; &lt;!-- HandlerAdapter --&gt; &lt;bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/&gt; &lt;!-- ViewResolver --&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/&gt; &lt;property name="prefix" value="/WEB-INF/jsp/"/&gt; &lt;property name="suffix" value=".jsp"/&gt; &lt;/bean&gt; &lt;!-- 表单映射器 --&gt; &lt;bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"&gt; &lt;property name="mappings"&gt; &lt;props&gt; &lt;prop key="add"&gt;add&lt;/prop&gt; &lt;prop key="save"&gt;save&lt;/prop&gt; &lt;/props&gt; &lt;/property&gt; &lt;/bean&gt; &lt;!-- 处理器 --&gt; &lt;bean name="/hellow" class="com.qin.controller.HellowController"/&gt; &lt;bean name="/indexAll" class="com.qin.controller.QueryAllUserController"&gt; &lt;/bean&gt; &lt;bean id="add" name="/add" class="com.qin.controller.AddController"&gt;&lt;/bean&gt; &lt;bean name="/delete" class="com.qin.controller.DeleteController"&gt;&lt;/bean&gt; &lt;bean name="/update" class="com.qin.controller.UpdateController"&gt;&lt;/bean&gt; &lt;bean id="save" name="/save" class="com.qin.controller.SaveController"&gt;&lt;/bean&gt; &lt;/beans&gt; </pre> web.xml里面的配置: <pre name="code" class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"&gt; &lt;display-name&gt;&lt;/display-name&gt; &lt;context-param&gt; &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt; &lt;param-value&gt;classpath:ac*.xml&lt;/param-value&gt; &lt;/context-param&gt; &lt;servlet&gt; &lt;servlet-name&gt;qin&lt;/servlet-name&gt; &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt; &lt;load-on-startup&gt;1&lt;/load-on-startup&gt; &lt;/servlet&gt; &lt;!-- 配置拦截 action为后缀名的请求 --&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;qin&lt;/servlet-name&gt; &lt;url-pattern&gt;/&lt;/url-pattern&gt; &lt;/servlet-mapping&gt; &lt;filter&gt; &lt;filter-name&gt;CharacterEncodingFilter&lt;/filter-name&gt; &lt;filter-class&gt;org.springframework.web.filter.CharacterEncodingFilter&lt;/filter-class&gt; &lt;init-param&gt; &lt;param-name&gt;encoding&lt;/param-name&gt; &lt;param-value&gt;utf-8&lt;/param-value&gt; &lt;/init-param&gt; &lt;/filter&gt; &lt;filter-mapping&gt; &lt;filter-name&gt;CharacterEncodingFilter&lt;/filter-name&gt; &lt;url-pattern&gt;/*&lt;/url-pattern&gt; &lt;/filter-mapping&gt; &lt;listener&gt; &lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt; &lt;/listener&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt; &lt;/welcome-file-list&gt; &lt;/web-app&gt; </pre> 怎么样,是不是有种熟悉的感觉,这个小项目是基于XML的方式配置Controller的,并没有使用注解的方式,每一个控制器,还是对应一个实体类, 需要重点说明的是src目录下的ac.xml和WEB-INFO下面的qin-servlet.xml这两者之间的关系 ,其实,他们的功能大部分时候都是一样的,只是在src目录下的ac.xml,感觉用来和Struts的项目结合的多一些,不过只要当服务器启动的时候,这两个spring的配置文件都会被加载,有一点不同的是,Spring MVC的一些控制器实例,只能在qin-servlet.xml里面,进行实例化,以及一些具体的控制器里面的一些实体类的注入,也需要在这里面进行。其他的功能,比如说事务的功能,AOP的功能,在这两个xml任意一个里面配置都可以。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2014-01-09
道友,你拜在哪个门下?
|
|
返回顶楼 | |