Spring報錯:Error creating bean with name的問題及解決
解決Spring報錯:Error creating bean with name
在使用springboot構(gòu)建 oltu-oauth的時候啟動項目報錯

在網(wǎng)上找一下沒找到 ,之前項目對比發(fā)現(xiàn)忘記在WebApplication中少加了個注解

加上之后問題解決,查了下這個注解(橫線以下是對@MapperSecan的介紹):
之前是,直接在Mapper類上面添加注解@Mapper,這種方式要求每一個mapper類都需要添加此注解,麻煩。
通過使用@MapperScan可以指定要掃描的Mapper類的包的路徑,比如:
@SpringBootApplication
@MapperScan("com.lz.water.monitor.mapper")
// 添加對mapper包掃描
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args); }
}同時,使用@MapperScan注解多個包
@SpringBootApplication
@MapperScan({"com.kfit.demo","com.kfit.user"})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
} 如果如果mapper類沒有在Spring Boot主程序可以掃描的包或者子包下面,可以使用如下方式進(jìn)行配置
@SpringBootApplication
@MapperScan({"com.kfit.*.mapper","org.kfit.*.mapper"})
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
} 導(dǎo)入seata報錯:Error creating bean with name ‘dataSourceProxyConfig‘
先去找配置的 registry.conf和file.conf有沒有問題,如果沒有問題那么就是你yml中配置了數(shù)據(jù)源
?datasource: ? ? driver-class-name: com.mysql.jdbc.Driver ? ? url: jdbc:mysql://localhost:3306/gift_auth ? ? username: root ? ? password: xxx
同時在你這個服務(wù)中又配置了數(shù)據(jù)源 這里可以是mybatis-plus版也可以是mybatis版,導(dǎo)致和yml中配置的數(shù)據(jù)源沖突了。
package com.wangling.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
import io.seata.rm.datasource.DataSourceProxy;
import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfiguration {
? ? //mapper.xml路徑
? ? @Value("${mybatis-plus.mapper-locations}")
? ? private String mapperLocations;
? ? //手動配置bean
? ? @Bean
? ? @ConfigurationProperties("spring.datasource")
? ? public DataSource druidDataSource(){
? ? ? ? return new DruidDataSource();
? ? }
? ? @Bean
? ? public MybatisSqlSessionFactoryBean sqlSessionFactoryBean(DataSourceProxy dataSourceProxy) throws Exception {
? ? ? ? //處理MybatisPlus
? ? ? ? MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean();
? ? ? ? factory.setDataSource(dataSourceProxy);
? ? ? ? factory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
? ? ? ? //事務(wù)管理工廠
? ? ? ? factory.setTransactionFactory(new SpringManagedTransactionFactory());
? ? ? ? return factory;
? ? }
? ? @Bean
? ? public DataSourceProxy dataSource() {
? ? ? ? return new DataSourceProxy(druidDataSource());
? ? }
}所以在自定義配置源里面加入@Primary 默認(rèn)自定義配置先啟動
package com.wangling.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean;
import io.seata.rm.datasource.DataSourceProxy;
import org.mybatis.spring.transaction.SpringManagedTransactionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfiguration {
? ? //mapper.xml路徑 ?這里如果是mybatis就把mybatis-plus修改了同時修改yml中的配置
? ? @Value("${mybatis-plus.mapper-locations}")
? ? private String mapperLocations;
? ? //手動配置bean
? ? @Bean
? ? @ConfigurationProperties("spring.datasource")
? ? @Primary
? ? public DataSource druidDataSource(){
? ? ? ? return new DruidDataSource();
? ? }
? ? @Bean
? ? public MybatisSqlSessionFactoryBean sqlSessionFactoryBean(DataSourceProxy dataSourceProxy) throws Exception {
? ? ? ? //處理MybatisPlus
? ? ? ? MybatisSqlSessionFactoryBean factory = new MybatisSqlSessionFactoryBean();
? ? ? ? factory.setDataSource(dataSourceProxy);
? ? ? ? factory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapperLocations));
? ? ? ? //事務(wù)管理工廠
? ? ? ? factory.setTransactionFactory(new SpringManagedTransactionFactory());
? ? ? ? return factory;
? ? }
? ? @Bean
? ? public DataSourceProxy dataSource() {
? ? ? ? return new DataSourceProxy(druidDataSource());
? ? }
}總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于synchronized的參數(shù)及其含義
這篇文章主要介紹了synchronized的參數(shù)及其含義詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
監(jiān)控Spring Boot 項目運行情況操作方法
在實際開發(fā)中,經(jīng)常會遇到想要獲取到服務(wù)器應(yīng)用的運行情況的場景,在微服務(wù)架構(gòu)下對于每個應(yīng)用運行情況的監(jiān)控是保證系統(tǒng)高可用的關(guān)鍵,本文給大家介紹如何實現(xiàn)在Spring Boot的jar包中對系統(tǒng)的運行情況進(jìn)行監(jiān)控操作,感興趣的朋友跟隨小編一起看看吧2024-08-08
SpringBoot中的配置類(@Configuration)
這篇文章主要介紹了SpringBoot中的配置類(@Configuration),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
詳解Java圖形化編程中的鼠標(biāo)事件設(shè)計
這篇文章主要介紹了Java圖形化編程中的鼠標(biāo)事件設(shè)計,是Java的GUI開發(fā)中的基礎(chǔ)部分,需要的朋友可以參考下2015-10-10
IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包
這篇文章主要介紹了IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包?本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
Java并發(fā)編程之常用的多線程實現(xiàn)方式分析
這篇文章主要介紹了Java并發(fā)編程之常用的多線程實現(xiàn)方式,結(jié)合實例形式分析了java并發(fā)編程中多線程的相關(guān)原理、實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2020-02-02

