ToB企服应用市场:ToB评测及商务社交产业平台

标题: quarkus依赖注入之十:学习和改变bean懒加载规则 [打印本页]

作者: 民工心事    时间: 2023-8-9 08:16
标题: quarkus依赖注入之十:学习和改变bean懒加载规则
欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本篇概览

关于懒加载(Lazy Instantiation


编码验证懒加载



  1. package com.bolingcavalry;
  2. import com.bolingcavalry.service.impl.NormalApplicationScoped;
  3. import com.bolingcavalry.service.impl.NormalSingleton;
  4. import io.quarkus.logging.Log;
  5. import io.quarkus.test.junit.QuarkusTest;
  6. import org.junit.jupiter.api.Test;
  7. import javax.inject.Inject;
  8. @QuarkusTest
  9. class ChangeLazyLogicTest {
  10.     @Inject
  11.     NormalSingleton normalSingleton;
  12.     @Inject
  13.     NormalApplicationScoped normalApplicationScoped;
  14.     @Test
  15.     void ping() {
  16.         Log.info("start invoke normalSingleton.ping");
  17.         normalSingleton.ping();
  18.         Log.info("start invoke normalApplicationScoped.ping");
  19.         normalApplicationScoped.ping();
  20.     }
  21. }
复制代码
  1. package com.bolingcavalry.service.impl;
  2. import io.quarkus.logging.Log;
  3. import javax.inject.Singleton;
  4. @Singleton
  5. public class NormalSingleton {
  6.     public NormalSingleton() {
  7.         Log.info("Construction from " + this.getClass().getSimpleName());
  8.     }
  9.     public String ping() {
  10.         return "ping from NormalSingleton";
  11.     }
  12. }
复制代码
  1. package com.bolingcavalry;
  2. import com.bolingcavalry.service.impl.NormalApplicationScoped;
  3. import com.bolingcavalry.service.impl.NormalSingleton;
  4. import io.quarkus.logging.Log;
  5. import io.quarkus.test.junit.QuarkusTest;
  6. import org.junit.jupiter.api.Test;
  7. import javax.inject.Inject;
  8. @QuarkusTest
  9. class ChangeLazyLogicTest {
  10.     @Inject
  11.     NormalSingleton normalSingleton;
  12.     @Inject
  13.     NormalApplicationScoped normalApplicationScoped;
  14.     @Test
  15.     void ping() {
  16.         Log.info("start invoke normalSingleton.ping");
  17.         normalSingleton.ping();
  18.         Log.info("start invoke normalApplicationScoped.ping");
  19.         normalApplicationScoped.ping();
  20.     }
  21. }
复制代码

改变懒加载规则的第一种手段



改变懒加载规则的第二种手段(居然和官方资料有出入)




  1. @ApplicationScoped
  2. @Startup
  3. public class NormalApplicationScoped {
复制代码
小结


欢迎关注博客园:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4