【SpringBoot】springboot启动报错The injection point has the following annotations: - @org.springframework.

项目场景:

在一次springboot项目启动时,控制台出现下面提示

***************************
APPLICATION FAILED TO START
***************************

Description:

Field icbc in com.yundaotu.hebi.service.AppImpl required a bean of type ‘com.itfuture.service.userService’ that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:

Consider defining a bean of type ‘com.itfuture.service.UserService’ in your configuration.


问题描述

出现上面情况,我们肯定会觉得是UserService没有交给spring管理,所以spring容器找不到userService这个bean真的是这样吗?

下面是我的UserService的部分代码:

/**
 * @author: wxh
 * @version:v1.0
 * @date: 2022/11/10 11:35
 */
@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;
	}

那么,加了@Service,就是说UserService已经交给了spring管理,那为什么还是扫不到呢??


原因分析:

那么这里就要想想springMVC了,哦!对,springboot并不知道去哪找注解,也就是说得告诉springboot去扫描哪些包的注解!!

我的启动器:

@SpringBootApplication
public class EApplication {
    public static void main(String[] args) {
        SpringApplication.run(EApplication.class, args);
    }

}

解决方案:

给启动器添加@ComponentScan(basePackages = { “com.itfuture.mapper” })

@SpringBootApplication
@MapperScan("com.itfuture.mapper")
public class EApplication {
    public static void main(String[] args) {
        SpringApplication.run(EApplication.class, args);
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 这个注入点拥有如下注解: - @org.springframework.beans.factory.annotation.autowired(required=true) 这表明此处是一个使用了@Autowired注解的注入点,并且设置了required=true,即它是必须被注入的。 ### 回答2: 这个注解@org.springframework.beans.factory.annotation.autowired(required=true)在Spring框架中经常被使用,作用是自动将对应类型的bean注入到当前注解所修饰的对象中。在这个注解中,required=true表示这个bean是必要的,如果找不到对应的bean将会抛出异常。 注解中的参数说明: required:是否必须注入成功,默认为true; value:要注入的bean的ID,如果不指定,则默认使用属性名作为ID到容器中查找对应的bean; name:要注入的bean的ID,和value一样可以用来指定要注入的bean的ID,二者的作用是相同的。 它的作用是表明对应的Bean属性必须装配,即在容器中查找到对应的Bean后装配到该属性上。如果没有找到对应的Bean装配到该属性上,则会抛出异常。 需要注意的是,如果required=true,且没有在容器中查找到对应的Bean,程序将会抛出异常。如果required=false,且没有找到对应的Bean,则该属性为null。所以在使用这个注解的时候,需要合理的设置required属性。 ### 回答3: 这个注解是Spring框架中的一个自动装配注解,这个注解的含义是告诉Spring容器,在实例化该类的时候需要自动装配一个Bean对象到这个注解所标注的属性上。 具体地说,@Autowired注解告诉Spring容器在启动时,需要从Spring容器中查找一个与该属性类型相匹配的Bean对象,并将其注入到该属性中。注意,这个注解中有一个required属性设置为true,这表示该属性是必须的,如果找不到匹配的Bean对象,会抛出异常。 因此,@Autowired注解非常方便,可以减少我们手动配置Bean对象的工作量,同时也可以保证Bean对象之间的关联性,提高了程序的可维护性和可读性。在项目中,我们可以使用@Autowired注解注入其他类的对象,也可以注入一些由Spring容器管理的Bean对象,例如:数据源、事务管理器等等。 最后,需要注意的是,@Autowired注解与其他的Spring注解,如@Resource和@Inject等是不同的,虽然它们的功能类似,但是它们的作用范围和粒度不一样,具体选择哪个注解,需要根据具体的业务需求和场景来选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Itfuture03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值