123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /**
- * Copyright (c) 2011-2020, hubin (jobob@qq.com).
- * <p>
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
- package com.baomidou.mybatisplus;
- import org.apache.ibatis.binding.MapperRegistry;
- import org.apache.ibatis.logging.Log;
- import org.apache.ibatis.logging.LogFactory;
- import org.apache.ibatis.mapping.MappedStatement;
- import org.apache.ibatis.session.Configuration;
- import org.apache.ibatis.session.SqlSession;
- import com.baomidou.mybatisplus.entity.GlobalConfiguration;
- /**
- * <p>
- * replace default Configuration class
- * </p>
- * <p>
- * Caratacus 2016/9/25 replace mapperRegistry
- * </p>
- *
- * @author hubin
- * @Date 2016-01-23
- */
- public class MybatisConfiguration extends Configuration {
- private static final Log logger = LogFactory.getLog(MybatisConfiguration.class);
- /*
- * Mapper 注册
- */
- public final MybatisMapperRegistry mybatisMapperRegistry = new MybatisMapperRegistry(this);
- /**
- * 初始化调用
- */
- public MybatisConfiguration() {
- logger.debug("mybatis-plus init success.");
- }
- /**
- * <p>
- * MybatisPlus 加载 SQL 顺序:
- * </p>
- * 1、加载XML中的SQL<br>
- * 2、加载sqlProvider中的SQL<br>
- * 3、xmlSql 与 sqlProvider不能包含相同的SQL<br>
- * <br>
- * 调整后的SQL优先级:xmlSql > sqlProvider > curdSql <br>
- */
- @Override
- public void addMappedStatement(MappedStatement ms) {
- logger.debug("addMappedStatement: " + ms.getId());
- if (GlobalConfiguration.isRefresh(ms.getConfiguration())) {
- /*
- * 支持是否自动刷新 XML 变更内容,开发环境使用【 注:生产环境勿用!】
- */
- this.mappedStatements.remove(ms.getId());
- } else {
- if (this.mappedStatements.containsKey(ms.getId())) {
- /*
- * 说明已加载了xml中的节点; 忽略mapper中的SqlProvider数据
- */
- logger.error("mapper[" + ms.getId() + "] is ignored, because it's exists, maybe from xml file");
- return;
- }
- }
- super.addMappedStatement(ms);
- }
- @Override
- public void setDefaultScriptingLanguage(Class<?> driver) {
- if (driver == null) {
- /* 设置自定义 driver */
- driver = MybatisXMLLanguageDriver.class;
- }
- super.setDefaultScriptingLanguage(driver);
- }
- @Override
- public MapperRegistry getMapperRegistry() {
- return mybatisMapperRegistry;
- }
- @Override
- public <T> void addMapper(Class<T> type) {
- mybatisMapperRegistry.addMapper(type);
- }
- @Override
- public void addMappers(String packageName, Class<?> superType) {
- mybatisMapperRegistry.addMappers(packageName, superType);
- }
- @Override
- public void addMappers(String packageName) {
- mybatisMapperRegistry.addMappers(packageName);
- }
- @Override
- public <T> T getMapper(Class<T> type, SqlSession sqlSession) {
- return mybatisMapperRegistry.getMapper(type, sqlSession);
- }
- @Override
- public boolean hasMapper(Class<?> type) {
- return mybatisMapperRegistry.hasMapper(type);
- }
- }
|