- 2021年03月20日14:04:26
- 解决bean循环依赖问题
- 添加
@Scope注解,目前支持单例、原型两种作用域 - 一些Bug修复
- 2021年03月17日11:28:14
- 修复一个bug,该Bug导致属性注入时会强制扫描所有成员并且创建包装类AopConfig
- 解决AutoProxyCreator的日志输出问题
- 2021年3月16日 17:23:02
- 通过bean后置处理器,现在mine-spring拥有了切面编程AOP的能力,使用
@EnableAspectJAutoProxy注解开启这项功能,同时支持Jdk Proxy与CGLib - 完善了示例项目,现在使用jsp做演示
- 静态资源现在可以访问,如果找不到对应的handler,会转发到服务器默认handler(tomcat为default)
- 现在可以使用
@Import注解在配置类导入特定的bean定义到容器中,这会在配置类解析的时候完成 - 更新项目文档和doc
- 2021年3月15日 23:12:10
- 完成IoC容器的bean对象生命周期的各种阶段处理器功能
- 一些问题:Component对象现在还不能指定初始化和销毁方法,目前尚未实现InitializingBean和DisposableBean这两个接口
- 2021年3月13日 17:02:09
- 删除RootBeanDefinition,简化BeanDefinition的接口实现结构,现在比较简洁
@Qualifier注解允许为属性指定特定的beanName,从而避免bean类型冲突- 修正Bug
- 2021年03月08日18:55:36
- 好久不见,即将完成0.0.3
- 0.0.3的最大特性无疑是加入了前后置处理器
- 分工明确的容器功能接口,继承层次明确的容器抽象、具体实现,和Spring源码有所不同,加入了我的一些简化理解,具体请看wiki
- 提一句功能逐渐齐全的坏处:代码量竟然1W行了
- 2021年01月19日14:30:10
- 看了很久Spring源码,0.0.2版本写的虽然简洁,但是结构与耦合度仍然比较乱
- 最近会完善beans包与context包,实现一个分工更明确、耦合度更低的IoC容器与支持注解的Context容器
- bean的生命周期显然是很复杂的,其中主要是各种前后处理器,0.0.3版本应该实现这些处理器
- 一旦实现了各种处理器,mine-spring的扩展性会增加很多,然后需要修改aop的注入方式、配置类的注入方式
- 蹩脚的地方删删删
- 2020年12月01日02:23:19
- 项目发布到Maven主仓库上去了,现在直接添加Maven坐标就可以使用本项目,更加方便。
- 删除了创建示例项目的骨架,以后直接创建一个web项目然后导入本项目依赖就好了!
- 2020年11月28日14:12:12
- 添加了
@ResponseBody和@RequestBody注解解析 - 重构了webmvc部分代码,把一些通用模块拆分出web包
- bean实例化过程中的前后置顺序处理有问题,因为目前还没有真正实现前后置处理器所以影响不大,已经更正
- 给所有类加了时间戳和author,方便后面维护
- 2020年11月20日21:01:13
- 权衡了一下,目前该项目没必要分太多模块,于是精简了整个项目,并且重新发布了
- 2020年11月20日18:00:28
- 重构了ViewResolver,现在如果需要使用webmvc功能,请配置视图解析器(就像Spring一样)
- ViewResolver和Spring一样支持设置prefix和suffix
- 现在可以正确地支持jsp和html模板了,你可以利用jsp建立页面,也可以只是用本项目提供的简易html解析功能来构建简单页面,支持el表达式
- 如果你添加jsp相应依赖,也可以继续使用如jstl等扩展功能
- 使用${revision}来统一管理项目版本,现在舒服了
- 2020年11月19日19:15:31
- 把测试项目独立出来了project-test,这个项目不参与打包和部署
- 现在
@RequestMapping可以同时对应多个映射地址了 - 添加了jsp模板支持,现在可以使用suffix配置项自定义模板后缀了,默认为.html
- 为DispatcherServlet添加了抽象父类FrameworkServlet,准备进一步剥离通用部分
- 优化了一下返回的异常处理页面,现在会有统一返回的异常页面
- 一些小细节和代码优化调整
- 解决了HandlerMapping重复注册的问题,现在起IoC只用beanName注册,如果使用beanClass,会进行查找对应的bean实例
- 现在可以支持同时指定beanName和beanClass来获取bean对象了,如果信息不符合会抛出异常。
- 2020年11月18日23:13:37
- 示例项目更名为project-example
- 2020年11月16日23:52:54
- mine-springframework项目的专属maven-archetype上线
- 现在你可以使用这个maven骨架快速创建一个基于mine-springframework的项目
- 2020年11月15日18:40:36
- 将原先的dzzhyk-springframework-test项目独立出来,这样方便打包测试和部署
- 添加了一个独立的新模块project-test,作为当前项目的测试模块,同时也是项目示例模块
- 2020年11月14日13:59:48
- 更新了context容器之后,更新了webmvc的策略,现在webmvc也可用了
- 模仿Spring添加了元数据支持,在scanner扫描包路径的时候会将内容扫描为元数据
- 添加了一个
@ComponentScan注解,现在可以在配置类上添加额外的扫描包路径了 - 研究了一下发现启动方式还不能完全抛弃配置文件,目前还需要一个basePackage属性来告诉容器在启动的时候扫描哪个基础路径
- 简化了一下aop部分创建aop对象的代码,现在代理类不会代理Object的一些原生方法或者final方法
- 在test模块做了一下测试,mvc和aop可以正常工作
- scanner会扫描路径下所有类class,然后使用过滤,过滤掉不是mine-springframework组件的内容(没加相关注解的),只注册组件内容
- 测试了文件上传功能可以正常使用,当然请使用POST方法,否则会报错
- Controller的参数现在可以和Spring一样,需要用到req或者resp就拿进来,否则就不用放进来了,简化了参数
- 2020年11月11日13:35:28
- 规范了一下代码,加了很多必要的注释
- 在代码javadoc中添加了作者信息
- 2020年11月10日21:59:41
- 更新的beans模块的设计,对标Spring
- 更新context容器模块,拆分功能,同时还有更加规范的实现
- 现在,基本支持了Java配置类的解析和使用,同时可以使用
@Lazy注解 - property文件配置方式被弃用,目前暂时只保留Java配置类配置方式
- 2020年11月06日15:45:10
- 文件上传和文件下载支持
- 在test模块中TestController中提供了文件上传和下载的实例
- 简化文件上传实现
- 2020年11月04日18:51:11
@Configuration和@Bean注解支持- 现在可以脱离mvc使用IoC容器了
- BeanDefinition属性扩充
- 目前支持2种Bean对象实例化方式
- 标准反射创建
- 工厂类创建(用于支持注解配置类)
- 2020年11月01日01:59:35
- 简化了原有的IoC容器,现在只有两个:singletonIoc和commonsIoc,其中commonsIoc是经常被使用的IoC容器
- 2020年10月30日14:49:35
- 加了一个一键分模块打包脚本package.sh
- 更新了一下各模块的pom
- 现在的输出结果是分模块的jar了,使用的时候还请分模块添加,同时请注意各模块之间的依赖关系
- 2020年10月30日13:21:35
- 解决了多层级包目录下Aop切面问题
- 解决了Controller方法无法切入问题
- 2020年10月29日23:29:51
- 为了更好地开发,进行了模块拆分处理
- 2020年10月27日23:19:58
- 功能优化,去除Webapps文件夹改用WebServlet注解
- 允许Controller返回String类型,默认自动解析到html模板
- 更新README.md
- 2020年10月17日02:52:02
- 最初版本发布!