当前位置 博文首页 > 令狐_JackieHao的博客:获取spring工厂中bean对象的两种方式
? 我们知道面向对象的java编程方式是通过new对象再调用相应的方法实现的,这是传统的对对象的操作方式;spring通过引入工厂来管理操作bean对象实现了对象的创建,管理,销毁等操作。
UserDao
里新建一个空方法UserDaoImpl
作为 UserDao
的实现类UserDaoTest
创建一个对象,用于调用 UserDaoImpl
实现类里的方法以上就是传统对对象的管理方法。
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