- 1.Mybatis补充知识
- 1.1参数取值特殊说明
- 1.2代理对象说明
- 1.2.1 常见动态代理
- 1.2.2Mapper接口说明
- 2.三大框架整合
- 2.1框架概述
- 2.1.1Spring框架
- 2.1.2Spring框架的核心机制
- 2.2.1SpringMVC
- 2.2框架之间的调用关系
- 2.3项目整合实现
- 2.2.1创建项目
- 2.3.2编辑pom.xml文件
- 2.4编辑核心代码
- 2.4.1编辑User的POJO
- 2.4.2 编辑UserMapper接口
- 2.4.3 编辑xml映射文件
- 2.4.4 编辑Service接口和实现类
- 2.4.5 编辑Controller
- 2.5 编辑核心配置
select * from dept where dept_id = #{id}
1.2代理对象说明
1.2.1 常见动态代理
- JDK动态代理
特点:
1.要求被代理者必须实现(有)接口
2.JDK代理是jdk默认提供的 - CGLIB动态代理
特点:
1.不管被代理者是否有接口,都可以为其创建代理对象,代理对象是目标对象的子类
2.cglib需要手动导入jar包
3.spring为了创建代理对象方便,自身自动添加cglib依赖项.
@Test
public void testFindDeptById(){
SqlSession sqlSession = sqlSessionFactory.openSession();
DeptMapper deptMapper = sqlSession.getMapper(DeptMapper.class);
System.out.println(deptMapper.getClass());
int id = 100;
Dept dept = deptMapper.findDeptById(id);
System.out.println(dept);
sqlSession.close();
}
2.三大框架整合
2.1框架概述
2.1.1Spring框架
spring框架是为了团队开发将复杂的框架进行整合,使得程序从控制到调用浑然一体,以一种统一的方式进行调用
核心:整合第三方框架
1.IOC
控制反转:将对象创建的权利交给Spring容器管理,由Spring容器管理对象的生命周期
DI:
创建对象时,如果该对象中有需要依赖的属性,Spring负责为属性赋值.
@RestController
public class UserController {
@Autowired
private UserService userService;
}
2.AOP面向切面编程
2.2.1SpringMVC说明:该框架的主要作用,接收用户的请求,之后完成业务处理,最终返回响应给用户
2.2框架之间的调用关系 2.3项目整合实现 2.2.1创建项目1.创建项目
2.选择SpringBoot版本
说明: 复制之前的项目中的pom.xml文件 格式如下
2.4编辑核心代码 2.4.1编辑User的POJO4.0.0 com.jt springboot_ssm2 0.0.1-SNAPSHOT springboot_ssm2 springboot_ssm2 1.8 UTF-8 UTF-8 2.4.1 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0 mysql mysql-connector-java org.projectlombok lombok org.springframework.boot spring-boot-dependencies ${spring-boot.version} pom import org.apache.maven.plugins maven-compiler-plugin 3.8.1 1.8 1.8 UTF-8 org.springframework.boot spring-boot-maven-plugin 2.4.1 com.jt.SpringbootDemo3mybitasApplication repackage repackage
package com.jt.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
private Integer id;
private String name;
private Integer age;
private String sex;
}
2.4.2 编辑UserMapper接口
package com.jt.mapper;
import com.jt.pojo.User;
import java.util.List;
public interface UserMapper {
List findAll();
}
2.4.3 编辑xml映射文件
2.4.4 编辑Service接口和实现类
1.编辑UserService接口
package com.jt.servic;
import com.jt.pojo.User;
import java.util.List;
public interface UserService {
//查询user表中的所有数据
List findAll();
}
2.编辑ServiceImpl实现类
package com.jt.service;
import com.jt.mapper.UserMapper;
import com.jt.pojo.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service //将该类交给Spring容器管理
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;//代理对象 JDK动态代理
@Override
public List findAll() {
return userMapper.findAll();
}
}
2.4.5 编辑Controller
package com.jt.controller;
import com.jt.pojo.User;
import com.jt.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController //@Controller 将该类交给spring容器管理 +
// @ResponseBody 业务返回值时,将数据转化为JSON
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/getUser")
public List findUser(){
return userService.findAll();
}
}
2.5 编辑核心配置


