JavaWeb---框架SpringMvc+Mybatis开发项目第一季(共三季)

原创 2015年11月18日 23:17:01

勿忘初衷(Stay Real)...走向了JAVA程序员的道路.路途是坎坷的,学习过程中有很多问题需要去解决,曾经想平平淡淡做个简单的猿就可以了,但在看清现实后,顺带在那仅存不多的上进心的促进下,我还是选择要干还是干的Perfect,do best.

开发有一段时间了.目前虽然还是小菜鸟,但是我相信我会突破界限达到自己想要的高度.对于JAVA开发,我是很热爱的,自己也喜欢写一些简单的小框架,供自己娱乐.对于开发的框架中,Spring框架是很NB的,这毋庸置疑.不过谁都有谁的好处,我是比较看好这个框架的.所以也去了解了一些.目前仅仅只是简单的会用一些框架做一些项目.SSH(下次更新就是这三大框架的使用和个人总结)三大框架也是独立开发过项目的,不过我还是比较喜欢用SpringMvc+Mybatis这套框架去开发项目.

那么我就来谈谈自己对这套框架的使用,和个人见解与总结(不喜勿喷,若有理解错误之处,希望大家一起指出,共同进步):

1.首先我在开发项目的时候喜欢用Maven去搭建我的项目,使用Maven把我的项目基本的模型搭建出来,并且把需要的jar包通过Maven引入.------Maven的使用介绍我会在后续补上.

2.使用Maven创建好Web项目后,就可以开始搭建框架了.

----------------------------------------------------------

搭建SpringMvc框架----用Mvc设计模式划分,它其中包括了控制层Controller和视图层View,将Spring和Mybatis紧密相连,完成Model层,其中用Mybatis来完成对数据库的操作.

开始搭建框架:

1.将SpringMvc、Mybatis和项目需要的jar包引入,这个我是通过Maven构建的之前有说过,当然大家也可以用传统方式,把jar放入WEB-INF/lib中。

2.创建配置文件,第一个配置文件--------application-context.xml(Spring主容器配置)

命名空间和对应的域,既然是主容器那么除了必要的beans、context、tx,还需要加入aop来声明事务。

<?xml version="1.0" encoding="UTF-8"?>
<beans 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:context="http://www.springframework.org/schema/context" 
	   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-4.0.xsd
    http://www.springframework.org/schema/aop 
	http://www.springframework.org/schema/aop/spring-aop-4.0.xsd  
    http://www.springframework.org/schema/tx   
    http://www.springframework.org/schema/tx/spring-tx-4.0.xsd   
    http://www.springframework.org/schema/context   
    http://www.springframework.org/schema/context/spring-context-4.0.xsd  
 ">
然后开始第一步,扫描注解组件:<context:component-scan>

 	<context:component-scan base-package="com.cx">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
	</context:component-scan>
扫描通过Spring添加的注解组件.这里注意:本来扫描包路径下面的全部的,这里我把Controller注解排除扫描了,也就是这里除了@controller注解其他的注解都会被扫描掉。

**这里是做法就是为了能让后面的事务起作用而有意为之。这里是我们配置的开端,我们还没有配置事务,如果过早的把@Controller也给创建Bean那么我们在Controller里面准备做的service事物处理就会没有绑定上去,导致后面的事务失效...

  继续配置:引入jdbc配置文件,(将jdbc连接需要的信息放到配置文件里面单独存储,便于更改)

<context:property-placeholder  location="classpath:config/jdbc.properties"  />
然后创建jdbc数据源,---dataSource:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init"   destroy-method="close" >
	    <property name="driverClassName" value="${jdbc_driverClassName}" />
	    <property name="url" value="${jdbc_url}" />
	    <property name="username" value="${jdbc_username}"/>
	    <property name="password" value="${jdbc_password}"/>
	    <!-- 连接池最大使用连接数 -->
	    <property name="maxActive" value="20"/>
	    <!-- 初始化连接大小 -->
		<property name="initialSize" value="1"/>
		<!-- 获取连接最大等待时间 -->
	 	<property name="maxWait" value="60000"/>
	 	<!-- 自动清除无用连接 -->
		<property name="removeAbandoned" value="true"/>
	 	<!-- 清除无用连接的等待时间 -->
	 	<property name="removeAbandonedTimeout" value="180"/>
	 	<!-- 连接属性 -->
	    <property name="connectionProperties" value="clientEncoding=UTF-8"/>
	</bean>

创建SqlSession:

<span style="white-space:pre">	</span><bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation">
			<value>classpath:config/mybatis-config.xml</value>
		</property>
//这里是当mybatis的xml文件和mapper接口不在同一个包下面的时候,我们就需要配置进行装载mapper.xml
		<property name="mapperLocations">			
		         <value>classpath*:/com/cx/mapper/**/*Mapper.xml</value>
		</property>
	</bean>

这里我配置加入本地配置文件mybatis-config.xml将其中的配置信息注入到sqlSession中,

完成对mybatis的sqlSession的构建。

然后我们把mapper接口在注入进去,

这里不用在单独加入property来添加sqlsession,MapperScannerConfigurer会自动加载的,

由于上面配置了自动装载mapper.xml,

所以在这里可以让我们的接口和xml不在同一个包中也可,

但是我们要把所有的mapper接口都要扫描到。。没扫描到的接口,你懂的。。。

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
<property name="basePackage" value="com.cx.mapper"/>  
</bean> 

最后我们在配置上事务:

-------------事务管理

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>
-------------通过tx;advice来配置事务信息

<tx:advice id="serviceAdvice" transaction-manager="transactionManager">  
    	    <tx:attributes>   
	        <tx:method name="insert*" propagation="REQUIRED" rollback-for="Throwable"/> 
	        <tx:method name="del*" propagation="REQUIRED" rollback-for="Throwable"/>  
	        <tx:method name="update*" propagation="REQUIRED" rollback-for="Throwable"/>
	        <tx:method name="add*" propagation="REQUIRED" rollback-for="Throwable"/> 
	        <tx:method name="save*" propagation="REQUIRED" rollback-for="Throwable"/> 
	        <tx:method name="*" read-only="true"/>  
    	    </tx:attributes>  
 	</tx:advice> 
-------------我自己定义了一个切面类,用来记录事务处理前后的数据库操作信息

<bean id="LogAop" class="com.cx.aop.LogAop" />
-------------设置aop

<aop:config proxy-target-class="true">  
//对所有service包下面的service类进行注册切点
		<aop:pointcut id="servicePointcut" expression="execution(* com.cx.service..*Service.*(..))"/> 
//引入配置的事务信息 
		<aop:advisor pointcut-ref="servicePointcut" advice-ref="serviceAdvice"/>
//引入切面类,在以servicePoincut为切点的事务处理前后执行的方法是:before方法和after方法
		<aop:aspect id="logAspect"  ref="LogAop">
			<aop:before method="before" pointcut-ref="servicePointcut"/>
			<aop:after method="after" pointcut-ref="servicePointcut"/>
		</aop:aspect>
 	</aop:config>

这样我们的Spring和Mybatis的配置信息就结束了。

让我们来配置SpringMvc的xml.......


版权声明:本文为博主原创文章,未经博主允许不得转载。

java web,从零开始,一步一步配置ssm(Spring+SpringMVC+MyBatis)框架

pom.xml文件架构:
  • wzj0808
  • wzj0808
  • 2016年12月21日 22:10
  • 3871

SpringMVC+Mybatis框架整合源码 项目

获取【下载地址】   QQ: 313596790   【免费支持更新】 支持三大数据库 mysql  oracle  sqlsever   更专业、更强悍、适合不同用户群体 A 代码生成器(开...
  • biejingsss
  • biejingsss
  • 2016年02月04日 12:58
  • 1416

JavaWeb---框架SpringMvc+Mybatis开发项目第二季(共三季)

SpringMvc配置 下面我们来完善配置,对最后SpringMvc特有的功能进行配置添加: 对于命名空间和对应的域,我们这里可以不用添加aop的,但既然是springmvc所以我们要添加一个为mvc...
  • qq_25223941
  • qq_25223941
  • 2015年11月19日 23:01
  • 382

JavaWeb实战(四)——加入MyBatis框架

钟宝辉 2017-05-12 08:44 上期说道Dao层中的SQL语句导致代码复杂难以维护。 这期我们用Mybatis框架来实现持久化。 我们先将sql语句提取出来。将DaoImpl中的s...
  • u011277123
  • u011277123
  • 2017年05月16日 09:21
  • 438

微信开发准备(二)——springmvc+mybatis项目结构的搭建

前面一篇有说道如何在MyEclipse中搭建maven项目,这里将继续介绍如何在搭建好的基础maven项目中引入我们常用的javaweb框架——SpringMVC! ①在建立好的maven项...
  • zhaojiacan
  • zhaojiacan
  • 2016年03月31日 11:43
  • 1634

springmvc+mybatis很经典的例子

springMVC+mybatis框架搭建 首先我们先要弄清搭建项目的一般流程,需要注意哪些方面,想要什么样的效果,自己的功能有哪些? (假设效果:项目目录结构清晰,能够查询到本地数据库中...
  • LanSeTianKong12
  • LanSeTianKong12
  • 2016年09月06日 15:14
  • 5017

【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

搭建SpringMVC+Spring+Mybatis集成开发环境,实现用户增删改查demo
  • jiuqiyuliang
  • jiuqiyuliang
  • 2015年04月29日 08:03
  • 162434

myBatis + SpringMVC上传、下载文件

环境:maven+SpringMVC + Spring + MyBatis + MySql 本文主要说明如何使用input上传文件到服务器指定目录,或保存到数据库中;如何从数据库下载文件,和显示图像...
  • baidu_18607183
  • baidu_18607183
  • 2016年05月11日 18:38
  • 296

spring+springMVC+mybatis的框架项目基础环境搭建

上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合。 虽然在之前activiti相关的学习中所用到的框架也...
  • tuzongxun
  • tuzongxun
  • 2016年04月14日 18:09
  • 7801

springmvc+mybatis下载项目自带模板

1、首先如果要获取javaweb项目中的文件在哪,用到的代码:request.getSession().getServletContext().getRealPath("/WEB-INF/down/花...
  • ilvest
  • ilvest
  • 2017年03月22日 20:21
  • 800
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaWeb---框架SpringMvc+Mybatis开发项目第一季(共三季)
举报原因:
原因补充:

(最多只允许输入30个字)