# knowledge-framework-demo **Repository Path**: davidlife/knowledge-framework-demo ## Basic Information - **Project Name**: knowledge-framework-demo - **Description**: java framework demos, mybatis, spring, and so on - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # knowledge-framework-demo #### Mybatis * mybatis-basic + 演示mybaits的基本使用,增删改查等 + XML配置方式 + 注解配置方式 + 一级缓存,二级缓存 + 表的一对一,一对多,多对多 * mybatis-selfdesign + 一个简单的模拟mybatis框架的实现。可参考了解mybaitis的实现原理 + 通过读取配置文件,然后采用动态代理的方式实现 + 模拟Resources.getResourceAsStream() + 模拟SqlSessionFactoryBuilder.build() + 模拟SqlSessionFactory.openSession() + 模拟SqlSession.getMapper() + 模拟Exector #### Spring * spring-beanfactory-simulation + 模拟工厂模式解耦 + 读取配置文件,通过反射生成对象,然后把生成的bean对象保存到Map容器中 * spring-two-proxy + 两种动态代理的实现方式 + 基于接口的动态代理,JDK提供的 + 基于子类的动态代理,cglib提供的 * spring-transaction-manager-simulation + 模拟通过动态代理的方式实现事务控制 + 通过动态代理能把事务控制的代码抽取到一个地方,然后业务层就只需关注业务代码就行了 + 整体使用了Spring的IoC容器和DI依赖注入,来管理类之间的依赖关系,通过bean.xml来配置 + 持久层使用了Apache的commons-dbutils + 注意其中ConnectionUtils的实现,它通过ThreadLocal类把数据库连接和线程进行了绑定。然后才能确保TransactionManager中管理事务用的连接和dao层执行业务代码用的连接是同一个。 * spring-basic + 演示Spring的一些基本使用方式 + Spring基于XML的AOP配置 + Spring基于注解的AOP配置 + 像Spring的IoC bean以及DI依赖注入的XML和注解的基本配置方式,这里代码里没有,可直接参考有道笔记中Spring的内容 * spring-transaction + Spring基于XML的事务控制 + Spring基于注解的事务控制 * spring-javaconfig-withoutxml + Spring基于Java Config的方式替代xml配置文件,使用纯注解的方式 * spring-javaconfig-withoutxml + Spring纯注解方式配置演示 + 使用Java Config实现,没有任何xml配置文件 * ssm + Spring + Spring MVC + Mybatis 整合演示,使用XML+注解配置 * ssm-parent + 也是ssm的整合项目,但是是分模块开发的方式 + 基于Maven分模块开发模式 + 在ssm-parent project下分三个module,ssm-dao、ssm-service、ssm-web * framework_copy + 搭环境时常用的一些可直接copy的内容,包括xml头文件、pom.xml、log4j等 + ssm整合_config_sumary.bmp:ssm整合配置总结,可参考此图片提示做ssm项目时需要配置那些内容。 #### Spring Data JPA * orm-jpa-start + jpa的简单使用,jpa的简单增删改查 + 封装了JpaUtil + jpa中JPQL查询的简单使用