spring.framework中的context.getbean用法[重复]

问题描述 投票:0回答:2
我是不熟悉框架的新手,并且在我的Java代码中使用了休眠模式。

我有下面的课,我不了解该课文件的目的:

import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Service; @Service public class BeanUtil implements ApplicationContextAware { private static ApplicationContext context; @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { context = applicationContext; } public static <T> T getBean(Class<T> beanClass) { return context.getBean(beanClass); } }

我有OracleDataDao类,我在下面使用以下几行,然后将其进一步保存到数据库中。但是this.oracleDataDao在bean类中包含什么。

this.oracleDataDao = BeanUtil.getBean(OracleDataDao.class); oracleDataDao.persist(records);

java spring hibernate javabeans
2个回答
1
投票
对于Spring应用程序,实现ApplicationContextAware的类将由Spring自动注入ApplicationContext。(依赖注入)

通常,此模式用作实用程序,因此,不是Spring Bean的类可以通过从Springs ApplicationContext中查找Bean来访问Spring托管的Bean。

在您的情况下,看起来OracleDataDao先前已注册为Spring Bean,并且您正在使用BeanUtil定位现有的Bean并将其分配给oracleDataDao变量。

已经说过,如果需要访问OracleDataDao Bean的类本身就是一个Bean,则无需以这种方式进行访问,您可以使用常规的依赖项注入方法简单地注入Bean,例如:

@Autowired private OracleDataDao oracleDataDao;


1
投票
this.oracleDataDao = BeanUtil.getBean(OracleDataDao.class); oracleDataDao.persist(records);
© www.soinside.com 2019 - 2024. All rights reserved.