Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVCSpring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatisMyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
第一步:创建Maven Web项目 1)添加Maven依赖
org.projectlombok
lombok
1.18.20
org.junit.jupiter
junit-jupiter
5.7.2
test
apiguardian-api
org.apiguardian
com.github.houbb
data-factory-core
1.1.0
guava
com.google.guava
org.apache.logging.log4j
log4j-api
2.12.1
org.apache.logging.log4j
log4j-core
2.12.1
com.fasterxml.jackson.core
jackson-core
2.10.1
com.fasterxml.jackson.core
jackson-databind
2.10.1
com.fasterxml.jackson.core
jackson-annotations
2.10.1
org.aspectj
aspectjrt
1.9.5
org.aspectj
aspectjtools
1.9.5
org.aspectj
aspectjweaver
1.9.5
aopalliance
aopalliance
1.0
javax
javaee-api
8.0.1
javax.servlet
jstl
1.2
mysql
mysql-connector-java
8.0.20
com.alibaba
druid
1.2.5
org.mybatis
mybatis
3.5.7
com.github.pagehelper
pagehelper
5.3.0
org.springframework
spring-context
5.3.12
org.springframework
spring-jdbc
5.3.12
org.springframework
spring-aop
5.3.12
org.springframework
spring-tx
5.3.12
org.mybatis
mybatis-spring
2.0.6
org.springframework
spring-test
5.3.12
org.springframework
spring-aspects
5.3.12
aspectjweaver
org.aspectj
org.springframework
spring-web
5.3.12
org.springframework
spring-webmvc
5.3.12
commons-io
commons-io
2.4
commons-fileupload
commons-fileupload
1.4
commons-io
commons-io
commons-codec
commons-codec
1.13
org.hibernate.validator
hibernate-validator
6.1.0.Final
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
2) 在pom文件中指定Mapper.XML文件在mybatis.xml中的配置有效
src/main/java
**/*.xml
第二步:利用MybatisCodeHelperPro生成代码
第四步:Spring整合MyBatis
MySQL数据库配置文件:mysql.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/db_proj_show?useSSL=false&serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8&autoReconnect=true&failOverReadOnly=false
jdbc.username=root
jdbc.password=root
MyBatis配置文件:mybatis-config.xml
DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
Spring配置文件-mybatis部分:mybatis.xml
Spring配置文件-spring部分:spring.xml
Spring配置文件:applicationContext.xml
测试代码:
@ExtendWith(SpringExtension.class)
@ContextConfiguration("/applicationContext.xml")
public class UserMapperTest {
@Resource
private UserMapper userMapper;
@Test
public void selectByPrimaryKey() {
System.out.println(userMapper.selectByPrimaryKey(1L));
}
}
第五步:整合Druid数据源并查看监控数据
修改mybatis.xml,将其ds节点替换为如下所示的内容:
修改web.xml,在其中添加如下所示的内容:
DruidWebStatFilter
com.alibaba.druid.support.http.WebStatFilter
exclusions
*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
DruidWebStatFilter
/*
DruidStatView
com.alibaba.druid.support.http.StatViewServlet
DruidStatView
/druid/*
打开浏览器,输入网址:ip/端口号/项目名/druid/sql.html,即可查看到监控数据,比如:
第六步:Spring整合SpringMVC 创建springmvc.xml
在Web.xml中配置SpringMVC拦截请求
contextConfigLocation
classpath:applicationContext.xml
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encodingFilter
/*
org.springframework.web.context.ContextLoaderListener
SpringMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
SpringMVC
/
测试代码
@Slf4j
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@GetMapping("/getById/{id}")
public ModelAndView getById(@PathVariable Serializable id,ModelAndView mav) {
User user = userService.selectByPrimaryKey( Long.parseLong(id.toString()));
System.out.println(user);
mav.addObject(user);
mav.setViewName("user");
return mav;
}
@PostMapping("/regist")
public ModelAndView regist(User user, ModelAndView mav) {
int insertRes = userService.insertSelective(user);
mav.setViewName("login");
return mav;
}
@PutMapping("/updateById")
public ModelAndView updateById(@RequestBody User user, ModelAndView mav) {
int updateRes = userService.updateByPrimaryKey(user);
mav.setViewName("user");
return mav;
}
@DeleteMapping("/removeById/{id}")
public ModelAndView removeById(@PathVariable Serializable id, ModelAndView mav) {
int deleteRes = userService.deleteByPrimaryKey((Long) id);
mav.setViewName("list");
return mav;
}
}