出于更好的开发此项目的目的,项目已迁移至 ayouran/bassis,当前地址会随时废弃
目的在于开发出类似springboot使用方式的框架,同时加入其它特性,使其原生支持分布式,借此窥探java语言特性、jvm、spring实现方式,使技术广度和深度得到提升,对后续阅读理解spring、hibernate等开源框架有一个强大的基础,对jvm有一定的认知能力。
- 我是一个java开发者,而非spring开发者
- 技术为了形成系统,站到更高的层面而学习,而不是为了工作
- 2021-02-01
- 更新日志框架为
slf4j
使用logback
实现- 增加
logback
集成到当前框架 - 在
bassis_bean
下对日志框架进行测试
- 增加
- 计划重构
bassis_bean
部分代码- 重写循环依赖注入解决的问题
- 计划重写
bassis_boot
部分代码- 将
tomcat
去掉,改由vertx
实现 - 将基于
vertx
作为本框架io
核心,以及后期的分布式基础支撑
- 将
- 计划暂时停止维护
bassis_data
,主力开发前两项
- 更新日志框架为
- bassis_tools 基于必须的jar支持重写一些工具方法
- bassis_bean 提供自动扫描、bean管理、全注解、ioc、aop、动态代理,全局事件等功能
- bassis_boot 嵌入tomcat8.5,增加main函数启动方式,需要bassis_bean的支持,实现框架的web,提供类似springmvc的一些功能,例如控制器自动匹配、拦截器栈、及松耦合方式使用bassis_hibernate完成多数据源自动注入与切换等功能
- bassis_data 前期基于jdbc进行开发
- 直接运行 bassis-test 或 bassis-boot下的test部分 即可
- 可以配置启动参数 bassis.start.schema=core 或者直接运行 bassis-bean下的test部分
本框架为手写框架,基于jdk8开发与编译,在低于此版本的jre上运行可能会出现异常。 模块依赖关系为:
- bassis_tools 基本第三方jar依赖
- bassis_bean bassis_tools 基础依赖
- bassis_boot bassis_bean 基础依赖
- bassis_data bassis_bean 基础依赖
- 详细情况请参见具体的pom.xml
- log4j 1.2.17
- gson 2.8.0
- cglib 3.2.12
- mysql-connector-java 5.1.40
- servlet-api 4.0.0
- tomcat 8.5.35
- 反射工具
- 基础、包装类型判定
- 自定义异常
- gc计数器
- json工具
- Properties文件读取器
- string工具
- 并发测试工具
- http请求工具
- log4j默认配置
- class扫描器
- @Autowired 实现
- @Component 实现
- @Aop 实现
- @Scope 实现
- 基于cglib与jdk动态代理
- 基于cglib的bean copy
- 自定义事件
- bean工厂
- 属性循环依赖注入
- 接口到实现类转换注入
- main函数启动tomcat
- 默认基本启动配置
- 默认filter及编码filter
- 默认servlet容器
- @Controller 实现
- 请求路径自动匹配bean实现
- @Interceptor及Interceptor栈实现
- @RequestMapping 实现
- 数据装配与解析返回基本实现
- 封装jdbc
- 无,按需求适当增加
- @Autowired 需要根据反射实现自动获取注入对象 去掉aclass参数 -- 已完成
- @Aop 需要根据反射实现自动获取注入对象 去掉aclass参数 -- 已完成
- @Scope 需要针对多实例模式下的bean做copy或者重新创建操作 -- 已完成
- 默认基本启动配置 需要支持个性化配置参数 -- 已完成
- 默认servlet容器 需要作为bassis_web基础依赖入口 -- 已完成
- @Controller 需要重写ioc逻辑 要与@Component保持一致 -- 已完成
- 请求路径自动匹配bean实现 需要优化路径存储已经寻址算法 -- 已完成
- @Interceptor及Interceptor栈实现 需要调试来兼容最新的aop功能
- @RequestMapping 实现 需要配合路径自动匹配 -- 已完成
- 数据装配与解析返回基本实现 需要重写定义大部分返回逻辑,抽离页面与数据的耦合 -- 已完成
- 多数据源jdbc
- 事务分组支持提交、回滚等功能