使用spring-mvc创建一个项目的过程

spring的配置十分复杂,很难记忆。

这篇博客用于记录springmvc整合创建过程,虽然步骤有点多,但是每一步都很容易理解,便于以后忘记后参考和记忆。

第一步创建一个空mvean项目

这一步没有难点

第二步在项目添加框架支持Add Frameworks Support,记得先加web框架,然后部署添加tomcat服务器和连接数据库,做完这些先跑一下空项目,如果代码写完了项目跑不起来就难受了,现在这检查一下是不是一个合格的web项目。

第三步导入所需得依赖

junit:用于测试

mysql驱动:无论使用什么连接数据库,数据库驱动都是必须的需要的

jstl:用于书写el表达式,注意导入的时候别导错了,可能出现与其他包不兼容问题

数据源:用不同的数据源需要导入不同的依赖

    <dependencies>
<!--导入依赖
junit mysql驱动 servlet jsp jstl mybatis mybatis-spring spring-jdbc spring-webmvc 数据源c3p0
-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b02</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.13</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.13</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.5</version>
</dependency>
</dependencies>

建下包结构,dao service pojo controller

第四步是建立mybatis-context.xml核心文件,配置mybatis

这个里面一般写mapper和别名,这个可以完全用spring配置,在这里写为了便于分开管理。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <mappers>
<mapper class=""/>
</mappers> </configuration>

第五步创建spring的xml核心文件applicationContext.xml

这个里面并没有写什么东西,只是最后所有关于的spring的东西,都导入到applicationContext.xml这一个里面,便于最后在web.xml中使用和管理

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--在这里也可以看出用到spring的共三层,dao(mapper) service controller(servlet)-->
<import resource="spring-service.xml"/>
<import resource="spring-dao.xml"/>
<import resource="spring-mvc.xml"/> </beans>

第六步创建database.properties

用于连接数据库设置

这里url使用8.0以上需要写时区,不写时区可能会出现一些问题

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/ssmbuild?characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong
username=root
password=123456

可以看出前六步并没有什么复杂操作

第七步整合mybatis

这一步用于整合mybatis

mybatis是dao的操作,负责增删改查,创建spring-dao.xml文件整合mybatis

  • mybatis做的操作并不多

    • 需要连接数据库,这就需要把database.properties文件里设置读取到连接池里
    • 使用数据源创建sqlSessionFactory工厂
    • 创建sqlSessionTemplate
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd"> <!--配置整合mybatis-->
<!--一、关联数据库文件database.properties,spring一般不能读取properties文件,但是使用这个之后可以用spring读取-->
<context:property-placeholder location="classpath:database.properties"/>
<!--二、数据库连接池-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driver}"/>
<property name="jdbcUrl" value="${url}"/>
<property name="user" value="${url}"/>
<property name="password" value="${password}"/>
</bean>
<!--三、配置SqlSessionFactory对象-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--这个用于连接mybatis的xml文件,理论上来说完全不需要mybatis的xml了,这个完全可以代替-->
<property name="configLocation" value="classpath:mybatis-context.xml"/>
<!-- <property name="typeAliases" value=""/>-->
<!-- <property name="mapperLocations" value=""/>-->
</bean>
<!--配置dao接口扫描包注入spring容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--注入sqlSessionFactory-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!--包名-->
<property name="basePackage" value="com.hjk.dao"/>
</bean> </beans>

第八步整合service

把service的类注入到spring-service.xml中

<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 扫描service相关的bean -->
<context:component-scan base-package="com.hjk.service"/>
<!--Service实体类注入到IOC容器中--> </beans>

第九步整合spring-mvc.xml

<?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:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd"> <!--注解驱动-->
<mvc:annotation-driven/>
<!-- 静态资源过滤 -->
<mvc:default-servlet-handler/> <!-- 视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean> <!-- 4.扫描web相关的bean -->
<context:component-scan base-package="com.hjk.servlet" /> </beans>

第十步配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--DispatcherServlet分发器-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> <filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <session-config>
<session-timeout>15</session-timeout>
</session-config> </web-app>

springMVC整合mybatis,spring的更多相关文章

  1. Maven SpringMVC整合Mybatis

    关于Spring的核心理念和Mybatis的优点网上已经有很多文档做了说明.这篇博客,只记录springmvc整合mybatis时常见的知识点,以及注意事项,它只有最精简的几个模块,以帮助初学者迅速搭 ...

  2. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

  3. SpringMVC整合Mybatis的流程

    前提:如何要整合SpringMVC 与Mybatis,首先要会配置SpringMVC 第一部分:配置SpringMVC 第一步:导入jar包 第二步:构建一个请求 <%@ page langua ...

  4. eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis

    接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...

  5. springmvc整合mybatis 配置文件

    使用SSM(Spring.SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没有记录SSM整合 ...

  6. eclipse下maven springMVC 整合 mybatis

    参考文档:http://blog.csdn.net/zhshulin/article/details/37956105   1.搭建maven工程,具体参见我另一篇博客:http://www.cnbl ...

  7. springmvc整合mybatis详细教程

    需求:整合springmvc和mybatis 整合的目标是:控制层采用springmvc,持久层使用mybatis 整合思想 dao层: 1.SqlMapConfig.xml.空文件即可.但是需要头文 ...

  8. SpringMvc 整合mybatis项目搭建

    1.使用idea创建maven项目 2.在项目src目录下 添加java文件夹 并设置类型为sources,添加resource文件夹 设置为resources 4.修改pom文件 添加引用 < ...

  9. SpringMvc整合Mybatis并使用声明式事务

    (1).引入相关依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid< ...

随机推荐

  1. 【经验总结】VSCode中找不到numpy/matplotlib/pillow,navigator没了

    在VSCode中写python时,import numpy和matplotlib总是报错找不到模块,用conda list和pip list看到都安装了numpy,前后折腾了很久遇到了好几个问题: 无 ...

  2. 【刷题-LeetCode】207. Course Schedule

    Course Schedule There are a total of numCourses courses you have to take, labeled from 0 to numCours ...

  3. springMvc 启动过程

    转载自https://www.jianshu.com/p/dc64d02e49ac 这里给出一个简洁的文字描述版SpringMVC启动过程: tomcat web容器启动时会去读取web.xml这样的 ...

  4. 原子操作atomic解读

    下面从一个问题引入: // ConsoleApplication5.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include<ran ...

  5. python删除列表重复元素

    用list类的sort方法 l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) l2.sort(key=l1.index) print l2

  6. git命令行-新建分支与已提交分支合并

    例如要将A分支的一个commit合并到B分支: 首先切换到A分支 git checkout A git log 找出要合并的commit ID : 例如 325d41 然后切换到B分支上 git ch ...

  7. PHP 取整

    转载请注明来源:https://www.cnblogs.com/hookjc/ 对于功能强大的PHP语言来说,能掌握到它的函数用法,一般都能灵活的编写各种需求的PHP程序.我们经常用到的PHP取整函数 ...

  8. iOS中JavaScript和OC交互 --by 胡 xu

    在iOS开发中很多时候我们会和UIWebView打交道,目前国内的很多应用都采用了UIWebView的混合编程技术,最常见的是微信公众号的内容页面.前段时间在做微信公众平台相关的开发,发现很多应用场景 ...

  9. Vue小白练级之路---001表单验证功能的一般实现思路

    思路: 先各自验证 非空校验 具体规则校验 后兜底校验( 防止用户没输入信息直接登录 ) 实现:( 以 element-ui 为例 ) 在 标签上用 model 动态绑定收集数据的对象(form) 在 ...

  10. python——schedule库实现定时任务

    今天给脚本加定时任务用到一个schedule库,使用起来很简单方便.https://github.com/dbader/schedulehttps://schedule.readthedocs.io/ ...