springMVC+Mybatis+maven实例

现在的java框架已经从SSH(spring+struts+Hibernate)过渡到了SSM(spring+springmvc+mybatis)。因为工作上用到的并不是spring框架,所以对spring并不是很熟悉,最近整理了一下以前的笔记,稍微再熟悉熟悉spring框架。

此次建立实例用到的是IntelliJ IDEA,应用maven来构建springmvc+mybatis+postgresql的web项目。打算创建一个基本的demo可以重复使用。

IDEA下建立maven的web项目

1、新建工程选择maven并配置相关信息。
springMVC+Mybatis+maven实例_第1张图片
2、此处可以随意填写。
springMVC+Mybatis+maven实例_第2张图片
3、选择下载好的maven。
springMVC+Mybatis+maven实例_第3张图片
4、设置项目名称。
springMVC+Mybatis+maven实例_第4张图片
5、点击finfish,maven的web项目就构建完成了,第一次构建可能要点时间,因为要现在相关内容(本人的速度还是挺快的,也可能是因为运气好吧),不过如果真的很慢那么请自行使用科学上网,或者参考网上的配置maven使用国内镜像下载。

搭建基于springmvc整合mybatis的web项目

1、再maven下载的资源结束后,就可以开始配置springmvc等相关的内容了。一般会默认的出现src文件夹,在文件加下会有main文件夹,main文件夹中会有webapp文件夹、resources文件夹,如果未出现自行建立也可以。
我们要在main中建立java文件夹用来存放java文件,在webapp文件加中建立css、js等文件用来放相关的资源文件。构建好的目录如下:
springMVC+Mybatis+maven实例_第5张图片
2、配置pom.xml,maven创建的项目要配置pom文件用来下载响应的jar包。
maven中央库在这里查找相关的maven地址。(代码很长这里就不放出来了,项目放在了github上,有需要的可以自取)

3、配置web.xml,文件中包括启动页,异常页,字符过滤等配置。部分代码如下:


<welcome-file-list>
    <welcome-file>index.jspwelcome-file>
welcome-file-list>


<error-page>
    <error-code>404error-code>
    <location>/WEB-INF/404.htmllocation>
error-page>

<error-page>
    <exception-type>java.lang.NullPointerExceptionexception-type>
    <location>/WEB-INF/error.htmllocation>
error-page>

    <session-config>
    <session-timeout>360session-timeout>
session-config>

Spring框架给我们提供过滤器CharacterEncodingFilter 用来处理字符

<filter>
    <filter-name>characterEncodingFilterfilter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    param>
        <param-name>encodingparam-name>
        <param-value>UTF-8param-value>
    param>
    param>
        <param-name>forceEncodingparam-name>
        <param-value>trueparam-value>
    param>
filter>
<filter-mapping>
    <filter-name>characterEncodingFilterfilter-name>
    /*

关联applicationContext.xml

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
listener>
<context-param>
    <param-name>contextConfigLocationparam-name>
    <param-value>/WEB-INF/applicationContext.xmlparam-value>
context-param>

关联dispatcher-servlet.xml

<servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

如果你的DispatcherServlet拦截”/”,为了实现REST风格,拦截了所有的请求,那么同时对.js,.jpg等静态文件的访问也就被拦截了。为了不被拦截,配置如下代码:

    
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.cssurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.swfurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.gifurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.jpgurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.pngurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.jsurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.htmlurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.xmlurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.jsonurl-pattern>
    servlet-mapping>
    <servlet-mapping>
        <servlet-name>defaultservlet-name>
        <url-pattern>*.mapurl-pattern>
    servlet-mapping>

4、配置好web.xml后就要开始配置applicationContext.xml和dispatcher-servlet.xml。
applicationContext.xml 部分代码如下:


<context:component-scan base-package="com.gcy"/>


<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath*:jdbc.propertiesvalue>
        list>
    property>
bean>

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="url" value="${jdbc.url}"/>
    <property name="username" value="${jdbc.username}"/>
    <property name="password" value="${jdbc.password}"/>

    
    <property name="initialSize" value="${ds.initialSize}"/>
    <property name="minIdle" value="${ds.minIdle}"/>
    <property name="maxActive" value="${ds.maxActive}"/>

    
    <property name="maxWait" value="${ds.maxWait}"/>

    
    <property name="timeBetweenEvictionRunsMillis" value="${ds.timeBetweenEvictionRunsMillis}"/>

    
    <property name="minEvictableIdleTimeMillis" value="${ds.minEvictableIdleTimeMillis}"/>

    <property name="validationQuery" value="SELECT 'x'"/>
    <property name="testWhileIdle" value="true"/>
    <property name="testOnBorrow" value="false"/>
    <property name="testOnReturn" value="false"/>

    
    
    

    
    <property name="filters" value="stat"/>
bean>

其中jdbc.properties需单独配置,内容如下:

#JDBC Global Setting
#数据库Driver
jdbc.driver = org.postgresql.Driver
#数据库连接地址
jdbc.url = jdbc:postgresql://127.0.0.1:5432/saaswechat
#用户名密码
jdbc.username = postgres
jdbc.password = 123456

##DataSource Global Setting
#配置初始化大小、最小、最大
ds.initialSize=1
ds.minIdle=1
ds.maxActive=20

#配置获取连接等待超时的时间
ds.maxWait=60000

#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
ds.timeBetweenEvictionRunsMillis=60000

#配置一个连接在池中最小生存的时间,单位是毫秒
ds.minEvictableIdleTimeMillis=300000

mybatis 相关配置



<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="classpath:mybatis.xml"/>
    <property name="mapperLocations" value="classpath*:com/gcy/dao/xml/*Mapper.xml"/>
bean>


<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" />
bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.gcy.dao"/>
    <property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/>
bean>

dispatcher-servlet.xml 配置如下:




<context:annotation-config/>


<context:component-scan base-package="com.gcy.controller">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
context:component-scan>


<context:component-scan base-package="com.gcy.service"/>



<mvc:resources mapping="/css/**" location="/WEB-INF/css/"/>
<mvc:resources mapping="/js/**" location="/WEB-INF/js/"/>


<mvc:annotation-driven/>



<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/views/"/>
    <property name="suffix" value=".jsp"/>
    <property name="exposeContextBeansAsAttributes" value="true"/>
bean>

到此 整个项目配置完成 ,上面只给出了部分代码,具体的代码请到GitHub上下载查看。或者直接下载代码。

你可能感兴趣的:(Java技术,springMVC,maven,postgresql,java,mybatis)