1.如果使用了多数据源,你又同时在配置slf4j的时候出现标题问题,请注意,在网上的其他教程里面都是会告诉你如下面操作添加
其实这个做法是不对的,因为你用的是多数据源,多数据源配置的情况下
application.yml文件里面配置的mybtis配置是没用的,配置都会移到多数据源的配置
如楼主贴图
/**
* @author Chenjl
* @date 2024/4/11 15:15
*/
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.logging.stdout.StdOutImpl;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
/**
* 数据库DM8
*/
@Configuration
@MapperScan(basePackages = {"com.base.service.baseservice.mapper.dm"}, sqlSessionFactoryRef = "sqlSessionFactoryDM")
public class DbSrcDM {
@Bean
public SqlSessionFactory sqlSessionFactoryDM(@Qualifier("dm-dkbs") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:**/*.xml"));
MybatisConfiguration mybatisConfiguration = new MybatisConfiguration();
mybatisConfiguration.setLogImpl(StdOutImpl.class);
mybatisConfiguration.setMapUnderscoreToCamelCase(Boolean.TRUE);
sqlSessionFactory.setConfiguration(mybatisConfiguration);
return sqlSessionFactory.getObject();
}
@Bean
public SqlSessionTemplate sqlSessionTemplateDM(@Qualifier("sqlSessionFactoryDM") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
看到了吗?在配置
classpath:**/*.xml
这里的时候,楼主之前是直接复制别人的代码,所以他在加载slf4j的日志的时候,会误认为在resource文件夹下所有的xml文件当做mapper.xml,被mybatis加载,因此你才会出现标题的问题,现在只要在多数据源全部地方改成楼主的情况,或者根据自身项目配置,则不会出现标题的问题
classpath*:/mapper/*Mapper.xml