MVC 是模型、视图、控制器的简写,核心思想是通过将业务逻辑、数据、显示分离来组织代码,MVC 是一种设计模式,而 Spring MVC 是很优秀的 MVC 框架,Spring MVC 可以更简洁的进行 Web 层的开发
通过在类上使用 @RestControllderAdvice,成员方法上使用 @ExceptionHandler。在这种异常处理的方式下,会给所有或者是指定的 Controller 织入异常处理的逻辑(AOP),当 Controller 中的方法抛出异常的时候,就由被 @ExceptionHandler 注解修饰的方法进行处理【ExceptionHandlerMethodResolver 中 getMappedMethod 方法决定了异常具体被哪个 @ExceptionHandler 注解修饰的方法处理异常。getMappedMethod() 会首先找到可以匹配处理异常的所有方法信息,然后进行从小到大范围的排序,最后去最小的一个匹配方法】
事务传播行为是为了解决业务层方法之间互相调用的事务问题,当事务方法被另一个事务方法调用的时候,必须指定事务应该如何传播【比如:方法可能继续在现有的事务中运行,也可能开启一个新的事务】
若是错误的配置以下 3 种,事务不会发生回滚
【常见的配置错误:1.在同一个类中调用。2.@transactional 修饰的不是 public。3.不同的数据源。4.回滚异常配置不正确。5.数据库引擎不支持事务】
当 @Transaction 注解作用到类上,该类的所有 public 方法都将具有该类型的事务属性,也可以在方法上使用。如果类或者方法加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库的相应数据也会回滚。如果不配置 rollbackFor 属性,那么事务只会在遇到运行时异常才会回滚,加上则事务在遇到非运行时异常也回滚
审计功能主要是帮助纪律数据库操作的具体行为,比如某条记录是谁创建的、什么时间创建的、最后修改人是谁、最后修改时间是什么
Spring Security 提供了多种加密算法的实现,非常方便。所有加密算法实现类的父类是 PasswordEncoder,如果需要自己实现加密算法,则需要集成 PasswordEncoder
通过 DelegatingPasswordEncoder,它兼容多种不同的密码加密方案,以适应不同的业务需求,本质是一个代理类,Spring Security 5.0 后,默认就是基于它来进行密码加密的