Spring Boot学习笔记 05

0x01 Mybatis 映射文件转移到resources文件夹下

关于Mapper映射文件的存放位置的写法有两种:

  1. 将mapper接口和mapper映射文件存放到src/main/java同一目录下,还需要在pom.xml文件中手动指定资源文件夹路径resources。
  2. 将mapper接口和映射文件夹分开存放,mapper接口类存放到src/main/java目录下,mapper映射文件存放到resources(类路径),在springboot核心配置文件中指定mapper映射文件的存放位置。

将src下的XML映射文件移动到resources文件夹Mapper中,这样有助于我们管理xml映射文件。

然后在application.properties中添加:

1
mybatis.mapper-locations=classpath:mapper/*.xml

这样我们就不用像上一次在pom.xml里的中添加这一项了

因为maven只编译src中的.java文件

0x02 SpringBoot集成Mybatis最主要的是两个注解

  • @Mapper 需要在每一个Mapper接口类上添加,作用扫描dao接口
  • @MapperScan 是在Springboot启动入口类上添加的,它是一次扫描所有的包

0x03 SpringBoot下使用事务

事务是一个完整的功能,也叫做是一个完整的业务。

事务只跟什么SQL语句有关系?
事务只跟DML语句有关系:增删改

SQL语句:DML,DQL,DDL,TCL,DCL

使用事务功能的时候只需要在java代码添加注解:

1
@Transactional

这样执行该方法的时候会看成事务来运作。

当事务其中一部分失效时会回退到开始阶段。

在入口类Application.java中可以添加:

1
@EnableTransactionManagement

这个注解来开启事务功能。

0x04 SpringBoot注解@RestController

@RestCOntroller相当于控制层类上加@Controller + 方法上加@ResponseBody

意味着当前控制层类中所有方法返还的都是JSON对象。

如以下xxxController.java代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.springboot.springboot002.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController {
@RequestMapping(value = "/springboot/say")
public @ResponseBody String say() {
return "Hello ,Springboot!";
}
}

等同于:(不需要@ResponseBody)

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.springboot.springboot002.web;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@RestController
public class IndexController {
@RequestMapping(value = "/springboot/say")
public String say() {
return "Hello ,Springboot!";
}
}