当前位置 博文首页 > 令狐_JackieHao的博客:获取spring工厂中bean对象的两种方式

    令狐_JackieHao的博客:获取spring工厂中bean对象的两种方式

    作者:[db:作者] 时间:2021-07-13 10:07

    获取spring工厂中bean对象的两种方式

    ? 我们知道面向对象的java编程方式是通过new对象再调用相应的方法实现的,这是传统的对对象的操作方式;spring通过引入工厂来管理操作bean对象实现了对象的创建,管理,销毁等操作。

    一、传统对象管理方式:

    • 在接口 UserDao里新建一个空方法
    • UserDaoImpl作为 UserDao的实现类
    • UserDaoTest创建一个对象,用于调用 UserDaoImpl实现类里的方法

    以上就是传统对对象的管理方法。

    二、spring工厂操作bean管理对象

    • 首先生成一个spring的配置文件 applicationContext.xml
    
    <bean id="aa" class="com.ay.test.springTest" /><!--这是第一种bean扫描方式,设置了bean唯一标识符-->
    
    <context:component-scan base-package="com.ay"/><!--这是第二中扫描方式,自动扫描ay包下的所有类,并且将这个包下的所有类注册为bean对象,这个方法用的比较方便-->
    
    • 创建一个 springTest类用来实现获取bean对象以及调用方法:
    package com.ay.test;
    
    import org.junit.jupiter.api.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.stereotype.Service;
    
    @Service
    public class springTest {
        @Test
        public void testSpring(){
    		ApplicationContext applicationContext=new ClassPathApplicationContext("applicationContext.xml");//首先启动工厂,加载spring的配置文件【这个配置文件文件使我们自己刚刚配置的】
            //第一种获取bean对象方式
            springTest aa=(springTest)applicationContext.getbean("aa");//填入我们设置的bean唯一标识符
        	aa.sayHello();
            
            //第二种获取bean对象方式
            springTest springTest = (com.ay.test.springTest) applicationContext.getBean("springTest");//直接填入方法
            springTest.sayHello();
        }
    
        public void sayHello(){
            System.out.println("Hello ay");
        }
    }
    
    
    
    以上介绍了两种通过配置文件扫描注册bean对象的方法,并在测试类中又用了两种获取bean对象的方式,一般来说第二种方式更方便。
    
    cs