一、Maven Web项目创建
如有需要,请参考:使用maven创建web项目
二、Spring + Spring MVC + MyBatis整合
1、Maven引入需要的JAR包(pom.xml)
- <properties>
- <!-- spring版本号 -->
- <spring.version>4.0.2.RELEASE</spring.version>
- <!-- mybatis版本号 -->
- <mybatis.version>3.2.6</mybatis.version>
- <!-- log4j日志文件管理包版本 -->
- <slf4j.version>1.7.7</slf4j.version>
- <log4j.version>1.2.17</log4j.version>
- </properties>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.11</version>
- <!-- 表示开发的时候引入,发布的时候不会加载此包 -->
- <scope>test</scope>
- </dependency>
- <!-- spring核心包 -->
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-web</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-oxm</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-tx</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-webmvc</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <!-- mybatis核心包 -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis</artifactId>
- <version>${mybatis.version}</version>
- </dependency>
- <!-- mybatis/spring包 -->
- <dependency>
- <groupId>org.mybatis</groupId>
- <artifactId>mybatis-spring</artifactId>
- <version>1.2.2</version>
- </dependency>
- <!-- java ee jar 包 -->
- <dependency>
- <groupId>javax</groupId>
- <artifactId>javaee-api</artifactId>
- <version>7.0</version>
- </dependency>
- <!-- Mysql数据库链接jar包 -->
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.30</version>
- </dependency>
- <!-- dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
- <dependency>
- <groupId>commons-dbcp</groupId>
- <artifactId>commons-dbcp</artifactId>
- <version>1.2.2</version>
- </dependency>
- <!-- JSTL标签类 -->
- <dependency>
- <groupId>jstl</groupId>
- <artifactId>jstl</artifactId>
- <version>1.2</version>
- </dependency>
- <!-- 日志文件管理包 -->
- <!-- log start -->
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>${log4j.version}</version>
- </dependency>
- <!-- 格式化对象,方便输出日志 -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.1.41</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-log4j12</artifactId>
- <version>${slf4j.version}</version>
- </dependency>
- <!-- log end -->
- <!-- JSON -->
- <dependency>
- <groupId>org.codehaus.jackson</groupId>
- <artifactId>jackson-mapper-asl</artifactId>
- <version>1.9.13</version>
- </dependency>
- <!-- 上传组件包 -->
- <dependency>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.3.1</version>
- </dependency>
- <dependency>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>2.4</version>
- </dependency>
- <dependency>
- <groupId>commons-codec</groupId>
- <artifactId>commons-codec</artifactId>
- <version>1.9</version>
- </dependency>
- </dependencies>
查找依赖结构有个不错的网站:http://search.maven.org/,只要输入包名即可查找依赖关系。
2、Spring与MyBatis的整合
(1)建立JDBC属性文件(jdbc.properties,文件编码修改为UTF-8)
- driver=com.mysql.jdbc.Driver
- url=jdbc:mysql://localhost:3306/SSMTest?useUnicode=true&characterEncoding=utf8
- username=root
- password=root
- #定义初始连接数
- initialSize=0
- #定义最大连接数
- maxActive=20
- #定义最大空闲
- maxIdle=20
- #定义最小空闲
- minIdle=1
- #定义最长等待时间
- maxWait=60000
(2)建立spring-mybatis.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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
- <!-- 自动扫描 -->
- <context:component-scan base-package="com.eric" />
- <!-- 引入配置文件 -->
- <bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="location" value="classpath:jdbc.properties" />
- </bean>
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
- destroy-method="close">
- <property name="driverClassName" value="${driver}" />
- <property name="url" value="${url}" />
- <property name="username" value="${username}" />
- <property name="password" value="${password}" />
- <!-- 初始化连接大小 -->
- <property name="initialSize" value="${initialSize}"></property>
- <!-- 连接池最大数量 -->
- <property name="maxActive" value="${maxActive}"></property>
- <!-- 连接池最大空闲 -->
- <property name="maxIdle" value="${maxIdle}"></property>
- <!-- 连接池最小空闲 -->
- <property name="minIdle" value="${minIdle}"></property>
- <!-- 获取连接最大等待时间 -->
- <property name="maxWait" value="${maxWait}"></property>
- </bean>
- <!-- Spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
- <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
- <property name="dataSource" ref="dataSource" />
- <!-- 自动扫描mapping.xml文件 -->
- <property name="mapperLocations" value="classpath:com/eric/mapping/*.xml"></property>
- </bean>
- <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
- <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
- <property name="basePackage" value="com.eric.dao" />
- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
- </bean>
- <!-- 事务管理 -->
- <bean id="transactionManager"
- class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
- <property name="dataSource" ref="dataSource" />
- </bean>
- </beans>
(3)Log4j的配置(log4j.properties)
- #定义LOG输出级别
- log4j.rootLogger=INFO,Console,File
- #定义日志输出目的地为控制台
- log4j.appender.Console=org.apache.log4j.ConsoleAppender
- log4j.appender.Console.Target=System.out
- #可以灵活地指定日志输出格式,下面一行是指定具体的格式
- log4j.appender.Console.layout = org.apache.log4j.PatternLayout
- log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
- #文件大小到达指定尺寸的时候产生一个新的文件
- log4j.appender.File = org.apache.log4j.RollingFileAppender
- #指定输出目录
- log4j.appender.File.File = logs/ssm.log
- #定义文件最大大小
- log4j.appender.File.MaxFileSize = 10MB
- #输出所有日志,如果换成DEBUG表示输出DEBUG以上级别日志
- log4j.appender.File.Threshold = ALL
- log4j.appender.File.layout = org.apache.log4j.PatternLayout
- log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
(4)JUnit测试
【1】创建测试用表user_t
- DROP TABLE IF EXISTS `user_t`;
- CREATE TABLE `user_t` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `user_name` varchar(40) NOT NULL,
- `password` varchar(255) NOT NULL,
- `age` int(4) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
- /*Data for the table `user_t` */
- insert into `user_t`(`id`,`user_name`,`password`,`age`) values (1,'Eric','123456',26);
【2】利用MyBatis Generator自动生成代码
这个工具可以根据表自动创建实体类、MyBatis映射文件以及DAO接口。
如有需要,请参考:使用MyBatis Generator自动创建代码
【3】建立service接口和实现类
IUserService.java
- package com.eric.service;
- import com.eric.bean.User;
- public interface IUserService {
- public User getUserById(int userId);
- }
UserServiceImpl.java
- package com.eric.service.impl;
- import javax.annotation.Resource;
- import org.springframework.stereotype.Service;
- import com.eric.bean.User;
- import com.eric.dao.UserMapper;
- import com.eric.service.IUserService;
- @Service("userService")
- public class UserServiceImpl implements IUserService {
- @Resource
- private UserMapper userDao;
- @Override
- public User getUserById(int userId) {
- return this.userDao.selectByPrimaryKey(userId);
- }
- }
【4】建立测试类(src/test/java/TestMyBatis.java)
- import javax.annotation.Resource;
- import org.apache.log4j.Logger;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- import com.alibaba.fastjson.JSON;
- import com.eric.bean.User;
- import com.eric.service.IUserService;
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations = { "classpath:spring-mybatis.xml" })
- public class TestMyBatis {
- private static Logger logger = Logger.getLogger(TestMyBatis.class);
- @Resource
- private IUserService userService = null;
- @Test
- public void test1() {
- User user = userService.getUserById(1);
- logger.info(JSON.toJSONString(user));
- }
- }
如果测试成功,表示Spring和MyBatis已经整合成功了。输出信息使用的是Log4j打印到控制台。
至此,就完成了Spring和MyBatis两大框架的整合,下面再继续进行Spring MVC的整合。
3、整合Spring MVC
(1)配置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:p="http://www.springframework.org/schema/p"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.1.xsd
- http://www.springframework.org/schema/mvc
- http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
- <!-- 自动扫描该包,使Spring MVC认为包下用了@controller注解的类是控制器 -->
- <context:component-scan base-package="com.eric.controller" />
- <!--避免IE执行AJAX时,返回JSON出现下载文件 -->
- <bean id="mappingJacksonHttpMessageConverter"
- class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
- <property name="supportedMediaTypes">
- <list>
- <value>text/html;charset=UTF-8</value>
- </list>
- </property>
- </bean>
- <!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
- <bean
- class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
- <property name="messageConverters">
- <list>
- <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON转换器 -->
- </list>
- </property>
- </bean>
- <!-- 定义跳转的文件的前后缀,视图模式配置 -->
- <bean
- class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/WEB-INF/jsp/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 配置文件上传,如果没有使用文件上传可以不用配置,如果不配置,那么配置文件中也不必引入上传组件包 -->
- <bean id="multipartResolver"
- class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
- <!-- 默认编码 -->
- <property name="defaultEncoding" value="utf-8" />
- <!-- 文件大小最大值 -->
- <property name="maxUploadSize" value="10485760000" />
- <!-- 内存中的最大值 -->
- <property name="maxInMemorySize" value="40960" />
- </bean>
- </beans>
(2)配置web.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns="http://java.sun.com/xml/ns/javaee"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
- version="3.0">
- <display-name>Archetype Created Web Application</display-name>
- <!-- Spring和mybatis的配置文件 -->
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring-mybatis.xml</param-value>
- </context-param>
- <!-- 编码过滤器 -->
- <filter>
- <filter-name>encodingFilter</filter-name>
- <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
- <async-supported>true</async-supported>
- <init-param>
- <param-name>encoding</param-name>
- <param-value>UTF-8</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>encodingFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- <!-- Spring监听器 -->
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <!-- 防止Spring内存溢出监听器 -->
- <listener>
- <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
- </listener>
- <!-- Spring MVC servlet -->
- <servlet>
- <servlet-name>SpringMVC</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring-mvc.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- <async-supported>true</async-supported>
- </servlet>
- <servlet-mapping>
- <servlet-name>SpringMVC</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
- <welcome-file-list>
- <welcome-file>/index.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
(3)测试
【1】新建jsp页面(showUser.jsp)
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>测试</title>
- </head>
- <body>${user.userName}:${user.age}</body>
- </html>
【2】建立UserController类
- package com.eric.controller;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import com.eric.bean.User;
- import com.eric.service.IUserService;
- @Controller
- @RequestMapping("/user")
- public class UserController {
- @Resource
- private IUserService userService;
- @RequestMapping("/showUser")
- public String toIndex(HttpServletRequest request, Model model) {
- int userId = Integer.parseInt(request.getParameter("id"));
- User user = this.userService.getUserById(userId);
- model.addAttribute("user", user);
- return "showUser";
- }
- }
【3】访问http://localhost:8080/SSM/user/showUser?id=1
项目整体结构图
相关推荐
Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
本项目是关于"activiti+spring+spring Mvc+mybatis+maven"的整合,旨在创建一个基于Activiti工作流引擎、Spring、Spring MVC、MyBatis以及Maven的开发环境。下面将详细介绍这些技术及其整合过程。 首先,`activiti`...
SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查...spring+spring mvc+mybatis+jquery 数据库文件 压缩包根目录test3\dbyyx.sql jar包文件 压缩包根目录\test3\WebContent\WEB-INF\lib
总的来说,"spring+spring mvc+mybatis框架整合实现超市货物管理系统"是一个涵盖后端开发基础技能的项目,涉及了JavaEE的多个层面,从Web层的路由处理,到业务逻辑的实现,再到数据库操作,以及用户认证和分页显示等...
校社联社团管理系统(Spring MVC+Spring+Mybatis+Redis),用来记录进度,和保存文件,完成一定阶段都上传到小组仓库中。 校社联社团管理系统(Spring MVC+Spring+Mybatis+Redis),用来记录进度,和保存文件,完成...
Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用开发教程(Spring+Spring MVC+MyBatis)SSM源码Java EE企业级应用...
基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...
spring boot+mybatis+spring mvc整合开发超市订单后台管理系统 项目描述 超市订单管理系统 运行环境 jdk8(jdk7)+mysql+Eclipse+maven+tomcat7 项目技术(必填) springboot+spring mvc+mybatis+jquery+jsp ...
- 分别配置Spring(如`spring-mybatis.xml`)和SpringMVC(如`spring-mvc.xml`)。 - `spring-mybatis.xml`中配置数据源、事务管理器、MyBatis的SqlSessionFactory以及Mapper扫描器。 - `spring-mvc.xml`中配置...
"SpringMvc+Spring+Mybatis+Maven+注解方式"是一个经典的Java后端技术栈,它整合了四个关键组件,为开发人员提供了强大的工具和框架支持。下面将详细讲解这四个组件及其整合方式。 1. **Spring Framework**: ...
在这个"Spring + Spring MVC + MyBatis整合项目"中,你可能会看到以下关键组件和配置: 1. **配置文件**:项目中会包含Spring的`applicationContext.xml`,定义了bean的装配;Spring MVC的`servlet-context.xml`,...
SSM框架,即Spring、Spring MVC和MyBatis的组合,是Java开发中常见的Web应用程序架构。这个压缩包提供了一套完整的SSM整合所需的jar包,使得开发者可以快速搭建一个基于这三个框架的项目。下面将详细讲解每个组件的...
使用环境:MyEclipse/Eclipse + Tomcat + MySQL。...使用技术:Spring MVC + Spring + MyBatis 或 JSP + Servlet + JavaBean + JDBC。 演示地址:https://ymjin.blog.csdn.net/article/details/120991940
项目描述 学生成绩管理系统,有三...spring boot+spring mvc+mybatis+layui+jquery+thymeleaf http://localhost:8080/Sys/loginView 管理员账号 admin admin 老师登录 2020031920 111111 学生账号登录 20200319 111111
这份文档名为《Java EE 框架整合开发入门到实战——Spring+Spring MVC+MyBatis(微课版)课后习题答案.pdf》,它显然是关于Java EE中流行的三个框架整合使用的教程。这三个框架分别是Spring、Spring MVC和MyBatis,...
在IT行业中,构建Web应用程序是一项常见的任务,而“基于maven+spring+spring mvc+mybatis框架web项目”提供了一个适用于初学者的学习路径。这个项目利用了四个关键的技术组件,它们分别是Maven、Spring、Spring MVC...
在本项目中,"Spring+SpringMVC+Mybatis+Maven+bootstrap+ajax+jQuery整合开发简单的员工后台管理系统",我们看到一个基于Java技术栈的Web应用开发实例。这个系统利用了多个核心技术来构建一个功能完备的员工管理...
基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili...
总的来说,"struts2+spring+mybatis+easyui"的实现是一个标准的Java Web项目结构,它利用Maven进行构建管理,通过整合四个组件,实现了后端的业务逻辑处理、数据访问和前端的用户界面展示。这种架构在实际开发中具有...
使用环境:MyEclipse/Eclipse + Tomcat + MySQL。 使用技术:Spring MVC + Spring + MyBatis / JSP + Servlet + JavaBean + JDBC。