zoukankan      html  css  js  c++  java
  • Spring

    前言

    上一章谈论了模式注解声明组件(Bean)的应用,这里记录下Spring实例化的一些细节。


    实例化

    • 通常我们通过@Component和@Autowired声明、使用Bean
    public class TestController {
        @Autowired
        private TestInter testInter;
    }
    
    public interface TestInter {
        void sayHello();
    }
    
    @Component
    public class TestOne implements TestInter {
        public TestOne () {
            System.out.println("TestOne init");
        }
    
        @Override
        public void sayHello() {
            System.out.println("Hello TestOne");
        }
    }
    
    • 可以看出,默认机制下,应用程序启动时IOC容器就开始实例化对象。

    在这里插入图片描述


    忽略当前要注入的bean

    • 当我们注入一个并没有实例化的对象。
    //@Component
    public class TestOne implements TestInter {
        public TestOne () {
            System.out.println("TestOne init");
        }
    }
    
    public class TestController {
        @Autowired
        private TestInter testInter;
    }
    
    • 此时程序抛出异常

    在这里插入图片描述

    • @Autowired(required = false) 忽略当前要注入的bean
    public class TestController {
        @Autowired(required = false)
        private TestInter testInter;
    }
    
    • 可看出,程序正常启动

    在这里插入图片描述


    @Lazy 延迟实例化

    • 通过@Lazy注解让Bean延迟实例化
    public class TestController {
        @Autowired
        @Lazy
        private TestInter testInter;
    
        @GetMapping(value = "/test")
        public void test(){
            testInter.sayHello();
        }
    }
    
    @Component
    @Lazy
    public class TestOne implements TestInter {
        public TestOne () {
            System.out.println("TestOne init");
        }
    
        @Override
        public void sayHello() {
            System.out.println("Hello TestOne");
        }
    }
    

    在这里插入图片描述

    - End -
    梦想是咸鱼
    关注一下吧
    以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
    作者:Maggieq8324
    本文版权归作者和博客园共有,欢迎转载,转载时保留原作者和文章地址即可。
  • 相关阅读:
    使用HSQLDB 客户端(jvm自带数据库使用技巧)
    PageHelper分页
    使用exe4j打包Java程序
    有图形界面的聊天程序
    同时收发消息
    服务端和客户端互聊
    使用Scanner
    收发字符串
    收发数字
    建立连接
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/15118088.html
Copyright © 2011-2022 走看看