Skip to content

Latest commit

 

History

History
183 lines (127 loc) · 5.91 KB

File metadata and controls

183 lines (127 loc) · 5.91 KB

Summer

English | 中文

Contributors Forks Stars Issues License Languages

Summer

Minimized AOP,IoC kernel tools.


Summer Docs >>

查看演示 · 报告Bug · 新特性

项目简介

Summer 是一个最小化的 AOP(面向切面编程)和 IoC(控制反转)内核工具库。它提供了一系列的验证器和相关工具类,用于简化对象和集合的验证逻辑,同时也包含了一些批量任务处理的功能。

验证模块 | Validation Module

  • 丰富的验证规则:验证模块提供了广泛的验证规则,包括长度检查、正则表达式匹配和集合大小验证。例如,您可以轻松验证字符串的最小和最大长度,以及集合的大小范围。

  • 基于注解的验证:支持基于注解的验证。您可以使用自定义注解标记类中的字段,并对对象执行验证操作。例如,使用 @NotNull 和 @Pattern 注解来验证用户定义的对象。

  • 集合验证:为集合提供特定的验证功能。您可以为整个集合以及集合中的每个元素设置验证规则。

批量任务处理模块 | Batch Task Processing Module

  • 主任务和子任务管理:包括 MainTask 和 SubTask 等实体,以及相应的数据访问对象 (MainTaskDao)。它可以管理主任务和子任务的状态、进度和相关信息。

  • 任务监控和恢复:TaskWatchdog 类会定期检查卡住的任务并尝试恢复它们,确保任务处理的可靠性。

入门指南

预备知识

确保您的开发环境中已经安装了 Java 和 Maven。

安装

克隆该仓库到本地:

git clone https://github.com/dianpoint/summer.git

进入项目目录并构建项目:

cd summer
mvn clean install

用法

Bean 定义与注入

通过 XML 文件定义 Bean,并使用 XmlBeanDefinitionReader 加载并注册:

AbstractBeanFactory beanFactory = new DefaultListableBeanFactory();
Resource resource = new ClassPathResource("beans.xml");
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory);
reader.loadBeanDefinitions(resource);
Object bean = beanFactory.getBean("beanName");

AOP 用法

通过 ProxyFactoryBean 为目标对象创建代理,并在方法执行前后织入通知:

ProxyFactoryBean proxyFactoryBean = new ProxyFactoryBean();
proxyFactoryBean.setTarget(target);
proxyFactoryBean.setInterceptorName("interceptorBeanName");
proxyFactoryBean.setBeanFactory(beanFactory);
Object proxy = proxyFactoryBean.getSingletonInstance();

校验

使用 ValidationRulesValidators 对集合与对象进行校验:

ValidationRule<Collection<?>> rule = ValidationRules.minsize(5);
ValidationResult result = rule.validate(collection);

User user = new User(null, "123@mail.com");
List<ValidationResult> results = Validators.annotated(User.class).validate(user);

RequestMapping 注解

@RequestMapping("/hello")
public String hello() { return "Hello, World!"; }

Autowired 注解

@Autowired
private AnotherService anotherService;

计划

  • 实现基础的 Bean 定义与注入
  • 添加 AOP 支持
  • 丰富校验模块规则
  • 支持基于注解的配置
    • 实现 @Autowired 注解(按名称字段注入)
    • 实现 @Component 扫描

有关建议功能和已知问题的完整列表,请参考issues

贡献代码

开源社区因贡献而精彩,任何形式的贡献都将被郑重感谢。

  1. Fork 本仓库
  2. 创建特性分支(git checkout -b feature/AmazingFeature
  3. 提交改动(git commit -m 'Add some AmazingFeature'
  4. 推送到分支(git push origin feature/AmazingFeature
  5. 发起 Pull Request

开源许可

Summer 基于Apache License 2.0许可证。查看License.txt获取更多信息。

联系我们