提交 f9aecee6 authored 作者: 吕本才's avatar 吕本才

修改BaseDaoImpl 的注入方式

上级 21db0953
...@@ -20,13 +20,17 @@ public class BaseDaoImpl<T> implements BaseDao<T> { ...@@ -20,13 +20,17 @@ public class BaseDaoImpl<T> implements BaseDao<T> {
// 注入当前实体对应的Mapper(由Spring自动注入,需在子类中指定具体Mapper) // 注入当前实体对应的Mapper(由Spring自动注入,需在子类中指定具体Mapper)
// 直接使用 BaseMapper<T> // 直接使用 BaseMapper<T>
@Autowired
protected BaseMapper<T> baseMapper; protected BaseMapper<T> baseMapper;
// 注入SqlSession,用于执行自定义SQL或批量操作(可选) // 注入SqlSession,用于执行自定义SQL或批量操作(可选)
@Autowired @Autowired
protected SqlSession sqlSession; protected SqlSession sqlSession;
// Setter方法,供子类设置具体的Mapper实例
public void setBaseMapper(BaseMapper<T> baseMapper) {
this.baseMapper = baseMapper;
}
// ------------------------------ // ------------------------------
// 复用MyBatis-Plus的BaseMapper方法(直接委托给baseMapper) // 复用MyBatis-Plus的BaseMapper方法(直接委托给baseMapper)
// ------------------------------ // ------------------------------
...@@ -136,7 +140,12 @@ public class BaseDaoImpl<T> implements BaseDao<T> { ...@@ -136,7 +140,12 @@ public class BaseDaoImpl<T> implements BaseDao<T> {
// 辅助方法:获取Mapper接口中的方法全名(namespace + method) // 辅助方法:获取Mapper接口中的方法全名(namespace + method)
private String getStatement(String method) { private String getStatement(String method) {
// 获取当前Mapper的类路径(如com.ruoyi.mapper.UserMapper) // 获取当前Mapper的类路径(如com.ruoyi.mapper.UserMapper)
String className = baseMapper.getClass().getInterfaces()[0].getName(); // 由于baseMapper是接口代理对象,需要获取其接口信息
return className + "." + method; Class<?>[] interfaces = baseMapper.getClass().getInterfaces();
} if (interfaces.length > 0) {
} String className = interfaces[0].getName();
return className + "." + method;
}
throw new RuntimeException("无法获取Mapper接口信息");
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论