我有下面的课,我不了解该课文件的目的:
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);
ApplicationContextAware
的类将由Spring自动注入ApplicationContext
。(依赖注入)通常,此模式用作实用程序,因此,不是Spring Bean的类可以通过从Springs ApplicationContext
中查找Bean来访问Spring托管的Bean。
在您的情况下,看起来OracleDataDao
先前已注册为Spring Bean,并且您正在使用BeanUtil
定位现有的Bean并将其分配给oracleDataDao
变量。
已经说过,如果需要访问OracleDataDao Bean的类本身就是一个Bean,则无需以这种方式进行访问,您可以使用常规的依赖项注入方法简单地注入Bean,例如:
@Autowired
private OracleDataDao oracleDataDao;
this.oracleDataDao = BeanUtil.getBean(OracleDataDao.class);
oracleDataDao.persist(records);