LD is tigger forever,CG are not brothers forever, throw the pot and shine forever.
Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people.
talk is cheap, show others the code,Keep progress,make a better result.
Survive during the day and develop at night。
目录
概述
查看mybatis的源码使用的工厂模式:
1.mybatis底层使用的是用来生产数据源的工厂DataSource这个是JDK自带的数据源,
public interface DataSourceFactory{
void setProperties(Properties var1);
DataSource getDataSource();
}
具体产品类 A
public class UnpooledDataSource implements DataSource { }
生产这个产品类A的具体工厂
public class UnpooledDataSourceFactory implements DataSourceFactory {
protected DataSource dataSource = new UnpooledDataSource();
public DataSource getDataSource() {
return this.dataSource;
}
}
分析:
实际产品B:
public class UnpooldData implements DataSourec{
}
生产这个产品的类的具体工厂:
poblic class UnpooledDataSourceFactory impements DataSourceFactotyr{
protect DataSource dataSource=new UnpooledDataSource();
public DataSoure getDataSource(){
reurn thisdataSource;
}
}
实际产品B:
public class PooledDataSouce implements DataSource{}{
}
生产B的工厂:
public class PooledDataSourceFactory extends UnpooledDataSourceFactory{
public PooledDataSourceFactoty(){
this.dataSource=new PooledDataSource();
}
}
小结:
参考资料和推荐阅读
1.链接: 参考资料.
这篇博客主要分析了Mybatis中工厂模式的运用,以DataSource为例,介绍了UnpooledDataSource和PooledDataSource的创建过程。通过工厂类如UnpooledDataSourceFactory和PooledDataSourceFactory来实例化数据源,展示了如何通过工厂方法动态生成不同的数据源实现。
3944

被折叠的 条评论
为什么被折叠?



