当我去搞hbase的时候发现hbase和Hibernate两段相似的代码,在 spring整合包中 HibernateTemplate类源码有这样一段写法
/** * Create a new HibernateTemplate instance. * @param sessionFactory the SessionFactory to create Sessions with */ public HibernateTemplate(SessionFactory sessionFactory) { setSessionFactory(sessionFactory); afterPropertiesSet(); }
doc注释写的是创建一个 HibernateTemplate 实例,然而在HbaseTemplate类源码有这样一段写法
public HbaseTemplate(Configuration configuration) { setConfiguration(configuration); afterPropertiesSet(); }
点进去方法内的方法发现HbaseTemplate类中 setConfiguration(configuration); afterPropertiesSet(); 和HibernateTemplate类源码源码分别是这样写的
/** * Sets the configuration. * * @param configuration The configuration to set. */ public void setConfiguration(Configuration configuration) { this.configuration = configuration; } @Override public void afterPropertiesSet() { Assert.notNull(configuration, " a valid configuration is required"); // detect charset charset = HbaseUtils.getCharset(encoding); } /********************/ /** * Set the Hibernate SessionFactory that should be used to create * Hibernate Sessions. */ public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override public void afterPropertiesSet() { if (getSessionFactory() == null) { throw new IllegalArgumentException("Property ‘sessionFactory‘ is required"); } }
对比下就发现写法几乎一样,只是处理逻辑不同,好了先写到这儿,可以引起各路思考
原文地址:https://www.cnblogs.com/huahuayuyu/p/9209065.html
时间: 2024-10-21 02:15:55