为团队开发,将复杂的框架进行整合,使程序从控制调用浑然一体,以一种统一的方式调用
核心:整合第三方框架
核心机制
IOC-DI
@RestController
控制反转:将其他框架里的对象创建的权力交给sping容器管理,由spring容器管理对象的生命周期
@Autowired
依赖注入:创建对象时,对象中有依赖的属性,spring负责属性赋值
AOP 面向切面编程
作用:接受用户请求,完成业务处理,返回响应给用户
框架之间调用关系SpringBootSpring
SpringMVC
Controller:接受前端参数 Spring
Service:对查询数据库后返回数据进行处理 Mybatis
Mapper:查询数据库获取数据 数据处理顺序
用户请求 --> Controller --> Service --> Mapper
Controller <-- Service <-- Mapper <-- 数据回传
controller类:
构成
@RestController :包含两注解
@Controller 包含@Component,将该类交给Spring容器管理(控制反转)
@ResponseBody 业务返回值时,将数据转化为JSON
@GetMapping(“findUserById”):规定访问方式
@Autowired:依赖注入,动态代理生成接口的实现类,再由此注解生成对象
@CrossOrigin:解决跨域问题
变量与方法
- private UserService userService;创建一个service接口对象(只有一个实现类,自动使用该实现类实现的方法)
数据接收
SpringMVC框架封装了Servlet,自动将传入数据封装为对应属性、对象、数组
若多个参数使用逗号分割,默认可用数组接收
集合(加@RequestParam)不方便,不用
关联:创建service接口对象
ServiceImpl实现类:
构成
注解
- @Service
将该类交给spring容器管理
@Service中包含@Component,可被controller类创建bean对象
- @Autowired 动态代理生成接口的实现类,再由此注解生成对象
重写的Service接口的方法
关联:继承实现service接口、创建mapper接口对象(JDK动态代理)
mapper接口
注解:
@MapperScan(“cn.jt.mapper”) 包扫描,mapper层文件路径。写在主启动类
写了后就不用在mapper层加@Mapper了
@Insert(“sql”)、@Select("")、@Update("")、@Delete("")注解写简单sql
关联:被service实现类调用、通过mapper.xml调用sql
SpringBoot整合Mybatisapplication.yml整合文件
server: port: 8090 servlet: context-path: / #Spring整合 1、数据源 2、mybatis #serverTimezone=GMT%2B8 指定时区 %2B = + 东八区 #useUnicode=true&characterEncoding=utf8 开启使用unicode编码,指定utf8 #autoReconnect=true 断线是否重新连接 #allowMultiQueries=true 是否允许批量 *** 作 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true username: root password: root mybatis: #配置别名 type-aliases-package: cn.jt.pojo #第一个/表示根目录,加载指定xml映射文件 mapper-locations: classpath:/mybatis/mappers/*.xml #开启驼峰映射 configuration: map-underscore-to-camel-case: true
原mybatis-config.xml文件
报错
500:后台服务器异常
bound statement绑定异常:
检查mapper.xml文件的namespace、select中的方法名绑定id检查application.yml中xml映射文件的导入mapper-locations检查application.yml中格式,是否顶格,是否有层级结构检查主启动文件中注解@MapperScan(“cn.jt.mapper”)
JDBC Connection数据库连接异常
检查application.yml中数据库连接配置 SpringMVC参数传递
前端控制器:负责用户请求的接收,后端业务的分发
Servlet(Server Applet)小服务程序或服务连接器
主要功能在于交互式地浏览和生成数据,生成动态web内容。
Servlet是java后台程序与用户交互的机制(媒介)
参数名称必须相同,请求存入Servlet,在从中取出
传入参数为String类型,需要手动转化 Integer.parseInt(age);
SpringMVC封装了Servlet,实现自动数据转化
参数传递get、post
简单参数传递:
MVC直接取值
对象接收数据:
多个数据,封装为 对象 或 对象+值
不能有同名属性,有同名属性用逗号连接
对象的引用赋值:
参数重名问题 name dog.name user里封装一个dog对象
RestFul参数传递
用户url编辑:
参数用/分割顺序不可随意更改请求路径中不能出现动词:get、set、update,隐藏目的
用户规范
RestFul都是名词,不可区分请求业务逻辑
采用请求类型,严格区分业务需求
GET 查询POST 新增/form表单提交PUT 修改DELETE 删除
参数接受
@GetMapping("/user/{name}/{id}") public Object testRestFul(User user){ return user; }
参数用/分割
参数用{}包裹
@PathVariable(“name”) String name 接收参数
参数名与对象属性名一致,可以对象接收
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)