一.org.springframework.beans.factory.UnsatisfiedDependencyException

一.org.springframework.beans.factory.UnsatisfiedDependencyException
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘permitHelpController’: Unsatisfied dependency expressed through field ‘rolePageMapService’; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘com.inspur.optimus.bsp.feign.role.IRolePageMapService’: FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘com.inspur.optimus.bsp.feign.role.IRolePageMapService’: FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

1.依赖无法注入异常
通过报错可以发现该异常是permitHelpController中无法注入rolePageMapService导致的异常,下面是依赖注入的位置,没有问题。

public class PermitHelpController {
@Autowired
private IRolePageMapService rolePageMapService;
}

下面是报异常无法注入的方法,也没有问题。
@FeignClient(
name = “bsp”,
path = “${loushang.feign.bsp:/bsp}”
)
public interface IRolePageMapService {}

2.问题根源
IRolePageMapService 类的包路径package com.inspur.optimus.bsp.feign.role;

package com.inspur.optimus.portal.newportal.controller;
import com.inspur.optimus.bsp.feign.role.IRolePageMapService;
PermitHelpController 的包路径和引入IRolePageMapService的路径,通过对比发现代码不在一个模块中,导致PortalApplication启动类启动时无法扫描到IRolePageMapService,所以Bean注入失败。但是在PortalApplication启动类上添加了@EnableFeignClients(basePackages = {“com.inspur.optimus.bsp.feign”})Feign客户端接口扫描,还是无法识别说明本地仓库没有上传该模块包,直接install该模块问题解决。

3.注解效果
3.1@SpringBootApplication(scanBasePackages = {})注解用于扫描Spring Boot应用程序的组件和配置类.

3.2@EnableFeignClients(basePackages = {})注解用于扫描Feign客户端接口

3.3@MapperScan 是 MyBatis-Spring 集成库中用于扫描 Mapper 接口的注解。@MapperScan 注解可以用于 Spring Boot 启动类上,它会使 Spring Boot 自动扫描指定的包路径,用于加载 MyBatis 的 Mapper 接口及其配置。

@MapperScan 注解的主要属性有:

basePackages:要扫描的包路径,可以设置多个,用逗号分隔。当这个属性为空时,会扫描启动类所在的包及其子包。
sqlSessionFactoryBeanName:指定一个已经配置好的 SqlSessionFactoryBean 的名称,这样就可以直接使用该 SqlSessionFactoryBean 来创建 SqlSession。
sqlSessionTemplateBeanName:指定一个已经配置好的 SqlSessionTemplateBean 的名称,这样就可以直接使用该 SqlSessionTemplateBean 来执行 SQL 语句。
通过使用 @MapperScan 注解,Spring Boot 可以自动地加载并初始化 MyBatis 的 Mapper 接口及其相关配置,使得开发人员不需要手动配置这些内容。

4.日志输出路径配置和异常查看
Log4j.xml配置日志输出绝对路径

D:/devolep/logs/optimus-portal
D:/devolep/logs/optimus-portal


[%d{ISO8601}] %-5p %X{user} %n %m%n

查看路径下boot.log日志文件,里面有详细的报错信息。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值