第一次访问无法负载均衡

ribbon.eureka.enable = true

数据源自动配置错误 

Failed to auto-configure a DataSource: 'spring.datasource.url' is not specified and no embedded data

解决方法:   @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are require

手动配置 MybatisConfig
public class MybatisConfig {
    @Autowired
    private DataSourceProperties dataSourceProperties;


    @Bean(name = "dataSource")
    public DataSource dataSource() {

        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(dataSourceProperties.getUrl());
        System.out.println(dataSourceProperties.getUrl());
        dataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
        dataSource.setUsername(dataSourceProperties.getUsername());
        dataSource.setPassword(dataSourceProperties.getPassword());

        return dataSource;

    }

    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        return sqlSessionFactoryBean.getObject();
    }
}


 

 spring调用fegin 常见问题

问题1  Load balancer does not have available server for client:

原因: 服务名称和feginClient()接口上的名称不一致导致

问题2:不执行fegin 接口实现类

原因:通过注解 @Component 注册到spring容器中

springcloud+gateWay遇到的问题

必须是springboot 2.14以上版本

***************************
APPLICATION FAILED TO START
***************************
 
Description:
 
Parameter 0 of method modifyRequestBodyGatewayFilterFactory in 
org.springframework.cloud.gateway.config.GatewayAutoConfiguration required a bean of 
type 'org.springframework.http.codec.ServerCodecConfigurer' that could not be found.
 
 
Action:
 
Consider defining a bean of type 'org.springframework.http.codec.ServerCodecConfigurer' in your configuration.

将pom.xml中关于spring-boot-start-web模块的jar依赖去掉。

错误分析:

根据上面描述(Description)中信息了解到GatewayAutoConfiguration这个配置中找不到ServerCodecConfig这个Bean。

spring cloud gateway server项目是一个spring boot项目,在启动的时候会去加载它的配置,其中有一个叫做GatewayClassPathWarningAutoConfiguration的配置类中有这么一行代码:

@Configuration
@ConditionalOnClass(name = "org.springframework.web.servlet.DispatcherServlet")
protected static class SpringMvcFoundOnClasspathConfiguration {
 
    public SpringMvcFoundOnClasspathConfiguration() {
        log.warn(BORDER+"Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. "+
        "Please remove spring-boot-starter-web dependency."+BORDER);
    }
 
}


 log.warn中翻译一下意思就是“在类路径上找到的Spring MVC,此时它与Spring Cloud网关不兼容。请删除spring-boot-start-web依赖项。”。

因为spring cloud gateway是基于webflux的,如果非要web支持的话需要导入spring-boot-starter-webflux而不是spring-boot-start-web。
 

 

 

 

 

 

 

 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐