首页 > 其他分享 >SpringBean的实例化

SpringBean的实例化

时间:2022-08-21 14:12:23浏览次数:64  
标签:构造方法 TestBean1 SpringBean Bean 实例 import public

在Spring框架中,想使用Spring容器中的Bean,需要先实例化Bean

SpringBean的实例化有3种方式

构造方法实例化 (最常用)

在Java配置类中,写一个构造方法,在这个构造方法中new一个Bean实例,
然后在构造方法上添加注解@Bean(value="beanClass") ,这里的beanClass是Bean实例的名称,一般使用小驼峰命名。

示例代码
TestBean1.java

package cn.lzh.kam.pojo;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class TestBean1 {
    private String msg;

    public TestBean1() {
        this.msg = "测试-构造方法实例化bean";
    }

    public TestBean1(String msg) {
        this.msg = msg;
    }
}

JavaCfg.java

package cn.lzh.kam.cfg;

import cn.lzh.kam.pojo.TestBean1;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JavaCfg {

    @Bean(value = "testBean1")
    public TestBean1 getTestBean1(){
        return new TestBean1();
    }
}

然后,业务代码中使用testBean1这个实例,2种方式
第一种,利用context.getBean

public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(KamApplication.class, args);
        TestBean1 testBean1 = (TestBean1) context.getBean("testBean1");
        System.err.println(testBean1.getMsg());
    }

第二种,利用注解注入实例

@Service
public class LoginService {
    @Autowired
    @Qualifier("testBean1")
    private TestBean1 testBean1;
}

静态工厂实例化

新建一个静态工厂类,用于实例化上面的TestBean1.java 。
在这个静态工厂类中,要手动new一个Bean实例,然后用createInstance静态方法renturn出这个实例;
最后,在Java配置类中,写一个构造方法,在这个构造方法中调用刚刚的静态工厂的createInstance方法来返回Bean实例。

示例代码
BeanStaticFactory.java

package cn.lzh.kam.pojo;

public class BeanStaticFactory {
    private static TestBean1 tb2 = new TestBean1("调用静态工厂来实例化Bean");
    public static TestBean1 createInstance(){
        return tb2;
    }
}

JavaCfg.java

package cn.lzh.kam.cfg;

import cn.lzh.kam.pojo.BeanStaticFactory;
import cn.lzh.kam.pojo.TestBean1;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JavaCfg {
    @Bean(value = "tb2")
    public TestBean1 getTb2(){
        return BeanStaticFactory.createInstance();
    }
}

实例工厂实例化

标签:构造方法,TestBean1,SpringBean,Bean,实例,import,public
From: https://www.cnblogs.com/skyI/p/16609918.html

相关文章

  • 《深入浅出WPF》MVVM视频教材中的实例练习
    前言在学习了《深入浅出WPF》的书籍以及视频之后,将最后的MVVM练习项目从头到尾敲了一遍,以加深自己的理解,也是为了提高自己对基础知识的熟练程度。由于是自己对着示例图自......
  • Spring源码学习笔记6——Spring bean的实例化
    一丶前言前面我们了解到读取xmlor根据扫描路径生成BeanDefinition并注册到BeanFactory,相当于我们具备了生火做饭的原材料:BeanDefinition,接下来就是Spring最为核心的,根据......
  • nginx配置实例—负载均衡
    一、实现效果浏览器地址栏输入地址http://192.168.17.129/edu/a.html,负载均衡效果,平均8080和8081端口中 二、准备工作(1)准备两台tomcat服务器,一台8080,一台80......
  • C语言指针与函数相关编程实例练习题
    指针也就是内存地址,指针变量是用来存放内存地址的变量,不同类型的指针变量所占用的存储单元长度是相同的,而存放数据的变量因数据的类型不同,所占用的存储空间长度也不同。本......
  • nginx配置实例-动静分离
     一、什么是动静分离          Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应......
  • nginx反向代理实例2
     一、实现效果 使用nginx反向代理,根据访问的路径跳转到不同端口的服务中nginx监听端口为9001,访问http://192.168.17.129:9001/edu/直接跳转到127.0.0.1:808......
  • 吴恩达机器学习笔记|(12)应用实例-照片OCR
    介绍一个复杂的机器学习系统如何组成一、照片光学字符识别(PhotoOpticalCharacterRecognition,photoOCR)如查找图片时,输入照片上存在的词语就可以将该照片搜索出来。......
  • 正则爬取实例
    importreimportrequestsurl='https://b.faloo.com/11834781.html'headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;Win64;x64)AppleWebKit/537.36(KH......
  • Nginx 反向代理实例1
     一、实现效果打开浏览器,在浏览器地址栏输入地址www.123.com,跳转到liunx系统tomcat主页面中  二、准备工作在linux中安装tomcathttps://www.cnblogs.com/zy......
  • python爬虫实例: 对指定城市kfc餐厅信息的爬取
    python爬虫实例:对指定城市kfc餐厅信息的爬取要求:爬取指定kfc餐厅数据kfc餐厅查询的url:http://www.kfc.com.cn/kfccda/storelist/index.aspx分析:由于餐厅信息......