CRUD
web相关术语的定义 代表 增删改查
创建:Create,读取:Read,更新:Update,删除:Delete
1、
@Component、@Repository、@Service以及@Controller之间的关系和区别
@RestController
@RequestMapping("/posts")
@Api(tags = "帖子相关接口")
@Autowired
private PostService postService;
@Controller || @RestController
:
作用于表现层(spring-mvc的注解),它注解的类进行前端请求的处理,转发,重定向。包括调用Service层的方法。
@RestController 相当于@Controller 和 @RequestBody
@Api对该controller起别名 让前端看懂这个类是做什么的
@Service
public class PostServiceImpl implements PostService
@Transactional
public interface PostService
@Transaction 事务管理器
保证方法内多个数据库操作要么同时成功、要么同时失败
@Service:
作用于业务逻辑层(service层)
@Repository:
作用于持久层(dao层),它注解的类作为DAO对象(数据访问对象,Data Access Objects),这些类可以直接对数据库进行操作
@Repository:
表示一个仓库,主要用于封装对于数据库的访问
他还能把所标注的类中抛出的数据访问异常封装为spring的数据访问异常类型
。
Dao层叫数据访问层: 对表的增删改查
@Component:
是一个通用的Spring容器管理的单例bean组件,可以被注入到spring容器进行管理。@Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能。
@RequestMapping:是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。该注解有六个属性:
@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
2.@Mapper和@MapperScan的区别
@Mapper
:作用是为了把mapper这个DAO交给Spring容器管理
对应了它的.xml的映射文件
@Mapper
public
interface
UserDAO
@MapperScan:直接扫描dao包
3.@RequestBody和@RequestParame的区别
@RequestParame
:注解
@RequestParam
接收的参数是
来自
请求头
。
@RequestParam
可以接受简单类型的属性,也可以接受对象类型 --实体类
但是这样不支持
批量插入数据
啊,如果改用
json
字符串来传值的话,类型设置为
application/json
,点击发送的话,会报错,后台接收不到值,为
null
。
用注解
@RequestBody
可以将body里面所有的
json
数据传到后端,后端再进行解析。
GET请求中不可以使用@RequestBody