获取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对象的方式,一般来说第二种方式更方便。