|
|
// 定义包路径,用于存放MyBatis配置类相关的代码。这个包名表明该类属于特定的项目模块(com.yf.exam)下的config部分,
|
|
|
// 通常用于组织和管理与MyBatis配置相关的代码。
|
|
|
package com.yf.exam.config;
|
|
|
|
|
|
// 导入自定义的查询拦截器类,该拦截器用于在查询操作时进行一些额外的处理,
|
|
|
// 比如可能会根据特定条件对查询语句进行修改、添加过滤条件等操作。
|
|
|
import com.yf.exam.aspect.mybatis.QueryInterceptor;
|
|
|
|
|
|
// 导入自定义的更新拦截器类,该拦截器用于在插入或更新操作时进行相关处理,
|
|
|
// 例如自动设置创建时间、更新时间等字段的值。
|
|
|
import com.yf.exam.aspect.mybatis.UpdateInterceptor;
|
|
|
|
|
|
// 导入MyBatis与Spring集成时用于扫描MyBatis映射接口的注解。
|
|
|
// 通过该注解可以指定要扫描的包路径,以便Spring能够自动发现并注册MyBatis的映射接口,
|
|
|
// 使得这些接口可以被正确地用于数据库操作。
|
|
|
import org.mybatis.spring.annotation.MapperScan;
|
|
|
|
|
|
// 导入Spring框架中用于标记一个方法返回值为Spring Bean的注解。
|
|
|
// 被该注解标记的方法,其返回值会被Spring容器管理,作为一个可被注入到其他组件中的Bean实例。
|
|
|
// 在本类中用于将queryInterceptor和updateInterceptor方法返回的拦截器对象注册为Spring Bean。
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
|
// 导入Spring框架中用于标记一个类是配置类的注解。
|
|
|
// 被该注解标记的类可以在其中定义各种Bean配置方法,这些方法会被Spring容器在启动时自动识别并执行,
|
|
|
// 用于创建和配置应用程序所需的各种组件。在本类中用于标记该类为Spring配置类,以便进行MyBatis相关的配置。
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
/**
|
|
|
* Mybatis过滤器配置类,主要功能是配置MyBatis的相关过滤器,
|
|
|
* 包括查询拦截器和更新拦截器等,并设置相关参数。同时通过注解指定MyBatis映射接口的扫描路径。
|
|
|
* 注意:必须按顺序进行配置,否则容易出现业务异常。
|
|
|
* @author bool
|
|
|
*/
|
|
|
@Configuration // 使用该注解标记此为Spring配置类,表明这个类是用来进行Spring应用程序的配置工作的。
|
|
|
@MapperScan("com.yf.exam.modules.**.mapper") // 使用MapperScan注解指定要扫描的MyBatis映射接口所在的包路径,
|
|
|
// "com.yf.exam.modules.**.mapper"表示会扫描com.yf.exam.modules包及其子包下的所有mapper接口。
|
|
|
|
|
|
public class MybatisConfig {
|
|
|
|
|
|
/**
|
|
|
* 定义一个方法,并使用@Bean注解将其返回值声明为Spring Bean。
|
|
|
* 该方法用于创建并返回一个查询拦截器(QueryInterceptor)对象,用于在查询操作时进行拦截处理。
|
|
|
*
|
|
|
* @return 返回一个查询拦截器(QueryInterceptor)对象,该对象已进行了相关设置(如设置查询限制)。
|
|
|
*/
|
|
|
@Bean // 将该方法返回的查询拦截器对象声明为Spring Bean,以便Spring容器能够管理和注入到其他需要使用的地方。
|
|
|
public QueryInterceptor queryInterceptor() {
|
|
|
QueryInterceptor query = new QueryInterceptor(); // 创建一个新的查询拦截器对象。
|
|
|
|
|
|
// 设置查询限制,这里将查询限制设置为 -1L,具体含义可能根据QueryInterceptor类的内部逻辑而定,
|
|
|
// 可能表示不限制查询结果的数量或者有其他特殊的处理方式与该值相关。
|
|
|
query.setLimit(-1L);
|
|
|
|
|
|
// 返回设置好的查询拦截器对象,该对象将被Spring容器管理并在合适的查询操作场景中被调用执行拦截处理。
|
|
|
return query;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 定义一个方法,并使用@Bean注解将其返回值声明为Spring Bean。
|
|
|
* 该方法用于创建并返回一个更新拦截器(UpdateInterceptor)对象,用于在插入或更新操作时进行拦截处理。
|
|
|
*
|
|
|
* @return 返回一个更新拦截器(UpdateInterceptor)对象,该对象可直接用于插入或更新操作的拦截处理。
|
|
|
*/
|
|
|
@Bean // 将该方法返回的更新拦截器对象声明为Spring Bean,以便Spring容器能够管理和注入到其他需要使用的地方。
|
|
|
public UpdateInterceptor updateInterceptor() {
|
|
|
// 创建一个新的更新拦截器对象,这里没有进行额外的设置操作(可能在UpdateInterceptor类内部有默认的处理逻辑),
|
|
|
// 直接返回该对象,它将被Spring容器管理并在合适的插入或更新操作场景中被调用执行拦截处理。
|
|
|
return new UpdateInterceptor();
|
|
|
}
|
|
|
} |