Releases: vfdxvffd/Summer
Releases · vfdxvffd/Summer
v1.2 适配数据访问模块
v1.1 增加配置类的添加
- 增加@configuration、@bean两个注解,可以通过这两个注解向容器注入配置的bean
- 对于@configuration注解可以通过指定proxyBeanMethods属性的true或者false来表示是否代理配置类,如果代理则标注了@bean的方法返回的bean是单例的
v1.0 发布正式版本,开放对外的扩展接口
本次更新测试了之前的版本的稳定性,以及增加了框架的扩展性,开放出别的框架适配的接口。
- 对之前的
pre-release
版本进行了多次测试以确保稳定性。 - 框架对外开放
Extension
接口,该接口中的方法在ioc
容器构造的多个阶段进行了切入,增加了框架的可扩展性。 - 如何将自己的框架适配到
Summer
,请看如何适配summer或者可以提issues。
v0.5 新引入二级缓存解决代理对象之间的循环依赖问题
- 引入新的二级缓存来解决复现出来的循环依赖问题,主要是由于代理对象之间的循环依赖引发的问题
v0.4 增加CGLib动态代理方式,修改判断对象是否完成注入和代理的方法
本次更新加入了新功能,修改了一个已知的bug
- 本次更新引入
CGLib
依赖,增加动态代理的方式,对于实现了接口的方法采用JDK
动态代理来实现切面功能,对于没有实现接口的类采用CGLib
来实现切面。 - 修改bug,之前版本中的
判断当前类是否已经完成了实例对象全部的创建注入工作
的方法,判断没有包含所有情况。
v0.3 增加IOC构造过程中的日志记录,将标注了@Aspect注解的类加入IOC容器
- 本次更新引入了日志依赖,增加了对ioc构造过程中的日志记录
- 对于标注了
@Aspect
注解的类自动将其加入IOC容器中,不用再重复标注注解
v0.2 切面方法可以获取参数,增加一种切入方式,修复一个已知的bug
- aop增加了一种切入方式,切面方法可以通过
JoinPoint
类获取被切的方法的参数、方法名、返回值类型。对于@AfterReturning
的切入方式可以获取返回值,类型为Object
,而@AfterThrowing
可以获取抛出的异常,类型为Throwable
。 - 修复了重复切入的bug
v0.1 修复了三个发现的bug, 核心代码增加了注释,优化了代码结构,抽取可重用的方法,重构了大部分冗余的代码块
本次更新主要修复了一些bug,以及优化了代码的结构
-
修复对于注入对象的切面方法失效的bug
-
修复延迟加载的对象注入失败的bug
-
修复对非单例的bean注入失败的bug
-
增加核心代码的注释。
-
优化代码结构,重构了大部分冗余的代码块
-
抽取可重用方法。
v0.0 完成基本功能
-
完成IOC容器的初步搭建
-
完成AOP功能的简单使用(还需修改)
-
支持
@Component
、@Autowired
、@Qualifier
、@Value
、@Repository
、@Service
、@Controller
注解的使用- @component(同@respository、@service、@controller):标注在类上,将此类注册到ioc容器中
- @Autowired:自动注入ioc容器中的对象
- @qualifier:自动注入ioc中对象的时候指定
beanName
,如不指定则按照beanType
注入 - @value:指定将类注入到容器是基本类型(包括包装类)字段的值
-
支持根据
beanName
、beanType
获取ioc中的对象 -
自定义类型转化异常,
@Value
接受String
类型,如果传入的值并不能正确转化,就抛出DataConversionException
异常。 -
增加单例模式与非单例模式的配置注解
@Scope
,以及增加延迟加载的配置注解@Lazy
-
可以使用接口来接受IOC中返回的对象
-
AOP可以对方法进行
@Before
、@After
、@AfterThrowing
的切面,需要配置方法的全方法名 -
AOP使用JDK的动态代理,
set
可以不添加,内部实现是直接通过设置域的可访问属性,然后直接设置值 -
后续计划:
- 支持根据
xml
配置ioc容器中的对象 - 对于运行过程可能发生的异常使其尽可能可控,且明确的抛出或处理
- 对于AOP可选择性的加入
CGLIB
代理 - 对于AOP一些已注入对象的代理失效bug进行修复(已定位)
- etc... for more...
- 支持根据