Java Idea ‘org.springframework.web.client.RestTemplate‘ that could not be found报错及解决

2024-06-04 7665阅读

Java Idea 'org.springframework.web.client.RestTemplate' that could not be found报错及解决

  • 1. 报错
  • 2. 解决
  • 3. 原理(@SpringBootApplication、@ComponentScan、@ServletComponentScan 和 @MapperScan 的区别)
    • 参考

      1. 报错

      Java Idea ‘org.springframework.web.client.RestTemplate‘ that could not be found报错及解决 第1张

      @ServletComponentScan 与 @MapperScan同时用,可能有冲突

      2. 解决

      1. 1.2之后 Springboot不再自带RestTemplate 不用自动注入,可以重新创建一个

      Java Idea ‘org.springframework.web.client.RestTemplate‘ that could not be found报错及解决 第2张

      2. 主程序上添加:@SpringBootApplication + @ServletComponentScan + @Mapper

      或者 @SpringBootApplication + @ServletComponentScan + @MapperScanner

      3. 原理(@SpringBootApplication、@ComponentScan、@ServletComponentScan 和 @MapperScan 的区别)

      @SpringBootApplication、@ComponentScan、@ServletComponentScan 和 @MapperScan 的区别

      • @SpringBootApplication这个注解是springboot启动类上的一个注解,是一个组合注解,主要由三个子注解组成: @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan,它的主要作用就是标记说明这个类是springboot的主配置类,springboot可以运行这个类里面的main()方法来启动程序。

        SpringBoot在没配置@ComponentScan的情况下,默认只扫描和主类处于同包及其子包下的beans(并把bean【service mapper resposioty controller 】自动注入容器)。

      • @ComponentScan注解 告诉Spring从哪里找到bean Spring会在应用主程序所在的包及其子包下进行全局扫描,把对应的bean注入到容器中,这里面的bean包括service mapper resposioty controller 所以在springboot程序中如果有@mapper注解的话 就不用再加mapperscan注解,springboot注解自带componentscan,会扫描到。

      • @MapperScan注解,@Mapper注解可以在编译之后生产对应的接口实现类,如果要每个接口都编程实现类,需要在每个接口上加上Mapper注解,比较麻烦,解决这个问题用的是@MapperScan注解,@MapperScan注解后面可以加value指定要扫描的包,即可实现mapper的注入。

        可以认为 @ComponentScan扫描包含了 @Mapper,每个Mapper类上有@Mapper注解的话,就可以省略@MapperScan;

      • @ServletComponentScan

        Servlet 三大组件 Servlet、Filter、Listener 在传统项目中需要在 web.xml 中进行相应的配置。Servlet 3.0 开始在 javax.servlet.annotation 包下提供 3 个对应的 @WebServlet、@WebFilter、@WebListener 注解来简化操作

        @WebServlet、@WebFilter、@WebListener 写在对应的 Servlet、Filter、Listener 类上作为标识,从而不需要在 web.xml 中进行配置了。

        Spring Boot 应用中这三个注解(@WebServlet、@WebFilter、@WebListener)默认是不被扫描的,需要在项目启动类上添加 @ServletComponentScan 注解, 表示对 Servlet 组件扫描。

        参考

        • https://blog.csdn.net/goodjava2007/article/details/129954166
        • https://blog.csdn.net/qq_43842093/article/details/121689381
        • https://blog.csdn.net/sc2_unlimited/article/details/113829837
        • https://blog.csdn.net/wangmx1993328/article/details/103362873
        • https://blog.csdn.net/weixin_55772633/article/details/131870673

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]