spring:IOC容器,AOP,TX声明式事务管理
获取自定义bean:
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/*.xml");
ClassA bean = context.getBean(ClassA.class)
=>优化:从已有的spring上下文获取bean
自定义类实现ApplicationContextAware接口
aop注解:
通知:前置before,后置after,返回afterReturning,异常afterThrowing,环绕around
切面类aspect 切入点表达式pointcut
数据库操作JdbcTemplate
声明式事务transactional 属性:只读、超时、回滚策略、隔离级别、传播行为
自定义检验注解:
@Constraint
注解用于自定义校验注解中, 必须实现ConstraintValidator
接口;接口里面有两个泛型, 第一个是自定义的注解类, 第二个是需要验证的数据类型, 可以用Object
, 表示所有类型都支持, 根据不同类型走不同逻辑方法。- 接口中必须实现的两个方法:
- 第一个是初始化验证器, 初始化完成后的结果让
isValid
调用, - 第二个是验证逻辑, 不同的逻辑方法就是在这里实现. 返回
true
, 则验证通过,false
则不通过, 然后会抛出message
里面自定义的异常信息。
- 第一个是初始化验证器, 初始化完成后的结果让
springmvc
全局异常处理: @ControllerAdvice注在处理类上 + @ExceptionHander(Exception.class)注在异常处理方法上
配置拦截器:
1.自定义拦截器类实现HandlerInterceptor接口
- preHandle:在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
- postHandle:在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回ModelAndView,但未进行页面渲染),有机会修改ModelAndView (这个博主就基本不怎么用了);
- afterCompletion:在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面);
2.自定义类实现WebMvcConfigurer接口,添加拦截规则
addInterceptors:添加拦截器,拦截器需要拦截的路径和需要排除拦截的路径都需要在其中配置
addResourceHandlers:配置静态资源路径,即某些请求需要读取某个路径下的静态资源内容,需要配置该静态资源的路径,通过该方法可以统一给这些请求配置指定静态资源路径
mybatis
一级缓存:sqlsession级别 二级缓存:sqlsessionfactory级别
缓存查询顺序:先查二级缓存,再查一级缓存
mybatisplus
- BaseMapper: public interface UserMapper extends BaseMapper <User>
- IService: public interface UserService extends IService <User> public class UserServiceImpl extends ServiceImpl<UserMapper, User> implement UserService
@TableName @TableId @TableField @TableLogic
条件构造器Wrapper: QueryWrapper UpdateWrapper LambdaQueryWrapper LambdaUpdateWrapper
mybatisx插件:逆向工程,代码生成
分页插件:mybatis用pagehelper,PageHelper和PageInfo类;mybatisplus自带分页插件,Page类。