关于在 springboot 中使用 @Autowired 注解来对 TemplateEngine 进行自动装配时,无法注入的问题。

这篇具有很好参考价值的文章主要介绍了关于在 springboot 中使用 @Autowired 注解来对 TemplateEngine 进行自动装配时,无法注入的问题。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本文是基于江南一点雨的 Spring Boot+Vue 系列视频教程第 三 章的第三节,详情参考Spring Boot+Vue系列视频教程
在观看学习这一节时,发现当进行手动渲染 Thymeleaf 模板时,通过 @Autowired 注解来对 TemplateEngine 进行自动装配时,发现 idea 对其显示 No beans of 'TemplateEngine ' type of found。
idea中显示如下:
关于在 springboot 中使用 @Autowired 注解来对 TemplateEngine 进行自动装配时,无法注入的问题。

但是当我运行后,没有报错,成功的运行了。于是勾引了我的好奇心。猜测是springboot启动时,容器中才有Bean,没启动前,容器中没有。

验证猜测

于是为了验证猜测是否正确,开启了漫长的寻找之路。虽然过程不及十万八千里,但也差不多。没办法本人菜鸡一个。
1、首先,自己想的是能不能通过 idea 的 debug 来查看。最后发现自己不能做到,无从下手,感觉很烦。
2、于是开启了面向百度编程,查找看看有没有捷径:即通过某种方法/技术来实现,例如监听器。嘿嘿,你猜怎么着,还真有。那就是通过 CommandLineRunner 接口

首先看 CommandLineRunner 是什么?

它是springboot提供的为了解决这样的需求,什么样的需求呢?就是在springboot启动时加载一些数据或预先完成某些动作
且Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例。
所以接下来上代码:

代码如下:

@SpringBootApplication
public class ThymeleafApplication {
    @Autowired
    TemplateEngine templateEngine;

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

    @Bean
    public CommandLineRunner commandLineRunner(ApplicationContext ctx){
        return args -> {
            System.out.println("springboot启动前.....");
            String[] names = ctx.getBeanDefinitionNames();
            for (String name : names) {
                if(name.contains("templateEngine")) System.out.println(name);
                else continue;
            }
        };
    }
}

结果如下:
关于在 springboot 中使用 @Autowired 注解来对 TemplateEngine 进行自动装配时,无法注入的问题。
关于在 springboot 中使用 @Autowired 注解来对 TemplateEngine 进行自动装配时,无法注入的问题。

最后即验证了猜测。文章来源地址https://www.toymoban.com/news/detail-432823.html

到了这里,关于关于在 springboot 中使用 @Autowired 注解来对 TemplateEngine 进行自动装配时,无法注入的问题。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring @Autowired 注解原理

    被扫描的组件配置类 输出结果 定位@Autowired所在包 org.springframework.beans.factory.annotation.Autowired 找到同包下 AutowiredAnnotationBeanPostProcessor AutowiredAnnotationBeanPostProcessor 的类继承图如下 AutowiredAnnotationBeanPostProcessor实现了InstantiationAwareBeanPostProcessor与 MergedBeanDefinitionPostProcessor两个Bea

    2024年02月16日
    浏览(41)
  • springboot~InvocationHandler中为什么不能使用@Autowired

    @Autowired 是 Spring Framework 中用于自动注入依赖的注解,通常情况下可以正常工作,但有一些情况下可能无法获取到 bean 对象: Bean未定义或未扫描到 :如果要注入的 bean 没有在 Spring 上下文中定义或者没有被正确扫描到, @Autowired 将无法找到要注入的 bean。确保你的 bean 配置正

    2024年02月10日
    浏览(55)
  • autowired和resource注解的区别

    注入规则不同 Autowired注解是spring的注解,此注解只根据type进行注入,不会去匹配name.但是如果只根据type无法辨别注入对象时,就需要配合使用@Qualifier注解或者@Primary注解使用。 Resource注解有两个重要的属性,分别是name和type,如果name属性有值,则使用byName的自动注入策略,将值

    2024年02月10日
    浏览(46)
  • @Autowired注解以及失效几个原因

    1、Autowired注解作用 使构造函数、字段、设值方法或配置方法可以被Spring依赖注入工具自动装配(Autowired)。 用于字段:字段在bean构造之后,任何配置方法被调用之前被注入。被注入的类需要是一个组件(@Component)。该注解不要求字段是public。 在构造 bean 之后,在调用任何

    2023年04月09日
    浏览(37)
  • Spring FrameWork从入门到NB -基于注解配置 & @Autowired注解

    基于注解的配置 其实前面我们已经在基于注解配置了,这是由于个人比较喜欢基于注解配置。 Spring官方文档提过一个问题:基于注解配置要好于基于xml的配置吗?其实各有千秋,根据个人喜好吧。重要的是Spring可以支持基于注解配置,也可以支持基于xml配置文件配置,也可

    2024年02月10日
    浏览(53)
  • Spring高手之路-@Autowired和@Resource注解异同点

    目录 概述 相同点 1.都可以实现依赖注入 2.都可以用于注入任意类型的Bean 3.都支持通过名称、类型匹配进行注入 不同点 1.来源不同。 2.包含的属性不同 3.匹配方式(装配顺序)不同。 4.支持的注入对象类型不同 5.应用地方不同 @Autowired 和 @Resource 是在 Java 开发中用于实现依赖

    2024年02月03日
    浏览(45)
  • SpringBoot使用@Autowired将实现类注入到List或者Map集合中

    最近看到 RuoYi-Vue-Plus 翻译功能 Translation 的翻译模块配置类 TranslationConfig ,其中有一个注入 TranslationInterface 翻译接口实现类的写法让我感到很新颖,但这种写法在Spring 3.0版本以后就已经支持注入 List 和 Map ,平时都没有注意到这一块,故此记录一下这种写法。 之前一般定义

    2024年02月14日
    浏览(39)
  • 深入解析 Spring Framework 中 @Autowired 注解的实现原理

    关于@Autowired注解的作用 @Autowired 注解在Spring中的作用是实现依赖注入(Dependency Injection),它用于自动装配(autowiring)Spring Bean 的依赖关系。具体来说, @Autowired 注解有以下作用: 自动装配依赖 :通过在类的字段、构造函数、方法参数等地方使用 @Autowired 注解,Spring 容器会

    2024年02月08日
    浏览(39)
  • Spring和IDEA都不推荐用的@Autowired注解,为什么还有那么多人用?

    @Autowired的默认装配 我们都知道在spring中@Autowired注解,是用来自动装配对象的。通常,我们在项目中是这样用的: 没错,这样是能够装配成功的,因为默认情况下spring是按照类型装配的,也就是我们所说的byType方式。 此外,@Autowired注解的required参数默认是true,表示开启自动

    2023年04月18日
    浏览(56)
  • @Autowired和@Resource注解之间的关系区别,Bean的作用域和生命周期,Spring的执行流程

    目录 一. @Autowired 和 @Resource 注解 二. Bean的作用域  1. singleton(单例模式) 2. prototype(原型模式)(多例模式) 3. 请求作用域:request 4. 会话作用域:session 三. Spring 的执行流程 四. Bean 的生命周期   1. 实例化  2. 设置属性  3. Bean 初始化      3.1 执行各种各种 Aware 通知;     

    2024年02月04日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包