基于spring 的开源框架

本文精选了多个使用Spring框架的优秀开源项目案例,涵盖电商、ERP、内容管理等多个领域,帮助开发者深入理解Spring的实际应用场景。

Spring框架是一个相对较难学习的一个框架,尤其是当你想要使用行业标准开发一个真实的项目案例的时候。虽然刚开始的时候阅读大量的教程是很有 帮助的,但是最终,还是要通过真实的项目案例来阅读代码、学习设计。值的庆幸的是,这里有一些使用Spring框架的、非常好的开源项目案例。

这些使用Spring框架的开源项目来自不同的领域:网站内容管理系统、网络购物、文档管理等等。根据你所阅读的这些源代码,你一定能更好地理解怎样使用Spring框架。

1. Shopizer

Shopizer是一个利用Hibernate、Spring、Struts2、jQuery等技术开发的Web销售管理和电子商务内容管理系统(CMS)。其功能主要有:

  • 短时间内创建高端网络店面。
  • 即使在没有专业技术的前提下,也能将现有的网站转变成很成熟的电子商务系统。
  • 提供了必要的网上销售电子商务工具,包括:购物车、库存管理、付款和运输、订单管理、在线结账和电子商务跟踪。
  • 电子商务和Facebook相结合,能够将产品和服务向你的Facebook页面进行推销宣传。

2. Powerstone

Powerstone是一个开源的Java工作流管理系统,基于Spring和Hibernate的基础创建的。该系统的组成部分有:一个引擎(处理通过Enhydra JaWE编辑的xpdl文件),一个流管理控制台,一个工作列表和一个身份管理模块。

3. Tudu Lists

Tudu Lists是一个日程(todo list)管理J2EE应用程序。基于JDK5.0、Spring、Hibernate和DWR AJAX框架建立而成的。Tudu Lists同样也是一个简单但实效的项目管理工具。它也经常用作为Spring App案例。

4. Alfresco Content Management

这是一个开源的企业内容管理系统,主要功能包括如下:

  • 可以从Windows Explorer和Mac Finder里拖放文件。
  • 可以将Google Docs和SharePoint进行整合。
  • 通过业务流程文档来嵌入工作流引擎路线。
  • 在文档内容和元数据之间进行全文搜索。
  • 粒度访问控制。
  • 可扩展的元数据模型。
  • 社交功能,如“喜欢”、“评论”、“跟踪”。 
  • 基于标准定位上的API(CMIS)能使得构建定制前端更容易。

5. SpringSide

SpringSide以Spring Framework为核心,提供一个Pragmatic的企业应用KickStart与Full-Stack的开源构件库;是JavaEE世界中的主流技术选型,最佳实践的总结与演示。

SpringSide主要由下面三部分组成:

  • Core:SpringSide核心代码。按照Spring Style,充分利用JDK5特性,编写必要的封装、粘合与便利代码。 
  • Examples:含新手入门公司培训专用的Helloworld示例与全面展示企业应用特性的Bookstore书店示例。
  • Tools:可重用的开源构件库,快速生成项目、加入构件与生成CRUD代码的Ant脚本、Eclipse Plugin。

6. Plazma

Plazma 是一款基于Spring,Hibernate开发的支持Oracle、PostgreSQL、MySQL、Firebird、HSQL等数据库的开源 ERP+CRM系统。并能够很好的运行于LINUX MAC WINDOWS系统平台上,为企业提供优秀的解决方案。

7. agileexpress

Express是一个敏捷项目管理工具。其Web App是使用Flex编写的,而服务器端组件是一个基于Spring框架的Java EE应用程序。主要功能包括:

  • 拖拽Backlog管理
  • 虚拟墙
  • 可以将迭代燃尽和速度用图表视图的方法展示出来。

8. Zksample2

Zksample2 对于ZK框架来说是一个更大的案例App。它使用Spring框架、Spring-AOP、Spring-Security、Hibernate、 JasperReports、DynamicJasper和Generic-Hibernate-DAO创建而成。

它的特殊之处在于:

  • ZK框架
  • 主驱动设计
  • Spring框架
  • Java
  • JasperReport
  • DynamicJasper
  • Hibernate-Generic-DAO
  • MVC(模型-视图-控制器模式)
  • 内嵌在H2数据库里,并为PostgreSQL/mySQL制作脚本语言。

9. Spring Rich Client

Java Swing的App框架是建立在Spring框架之上的,目的是为了简化构建专业、企业级的客户端应用程序的要求。

10. Broadleaf Commerce

当前最通用的Broadleaf Commerce源代码托管在GitHub上。Broadleaf Commerce是基于Spring框架的开源Java eCommerce平台,使用健壮的、可扩展的体系结构,提供深度定制和快速开发等服务。

11. OpenERP

OpenERP是一个企业管理软件,使用Java语言编写的。这款软件使用先进技术和模式,如:JSF、Hibernate、Spring、Acegi、AJAX、Axis和Maven。我们同样也使用BaseGen从UML里生成代码。

12. Luigi Open Search Engine

基于lucene搜索库,利用Spring框架来提供简单的可配置搜索,而只需要一点点或根本不用入侵App代码。你可以从任何POJO集合里创建索引,并能从事件触发记录里获得有用的东西。

 

 

13.JEECG

http://www.oschina.net/p/jeecg

[J2EE  Code Generation] 是一款基于代码生成器的智能开发框架.

JAVA编程有很多重复机械代码, 生成器可以帮助解决50%的重复工作,让开发更多关注业务逻辑, 从而实现代码生成+手工MERGE的半智能开发。JEECG敏捷框架可以有效解决信息孤岛问题,生成统一代码、统一规范、统一设计思路,使你能在这个平台 上,快速开发出高效高质量代码,缩短项目开发周期。

 

14. Java应用框架 Nutz

http://www.oschina.net/p/nutz

首先,它是开源的,商用也是完全免费的。详尽的文档,众多线上项目

不吹嘘概念,代码严谨可靠,近千个testcase,坚如磐石。您使用的nutz.jar,也是各位提交者在各种生产环境上使用的 nutz.jar ^_^

一个 jar 包就包含了 Mvc,Ioc,Dao,Aop,不强制依赖第三方 jar。小巧的Lang工具箱和EL表达式引擎,满足各种小需求。内置Json序列化/反序列化, 简洁高效。

Mvc/Ioc 可稳定运行在 android 平台,普通 x86/x64/arm 环境更不在话下。

15.Web应用构建平台 Meteor
http://www.oschina.net/p/meteor
Meteor 是一组新的技术用于构建高质量的 Web 应用,提供很多现成的包,可直接在浏览器或者云平台中运行。
<br>认识 Spring <br> 来认识 Spring 的一些特性,并初步了解一下什么叫作 IoC?什么叫作 DI? <br>简介 Spring <br>Inversion of Control <br>Dependency Injection <br><br><br>核心容器 <br> Spring 核心容器实作了 IoC,BeanFactory 与 ApplicationContext 的运用是了解 Spring 的重点所在。 <br>管理 Bean <br>从第一个 Spring 应用程式开始,逐步了解何谓依赖注入,以及如何使用 Spring 的容器功能来管理 Bean,了解 Bean 在 Spring 容器中的生命周期。<br>第一个 Spring 程式 <br>BeanFactory、 ApplicationContext <br>Type 2 IoC、Type 3 IoC <br>属性参考 <br>自动绑定 <br>集合物件注入 <br>Bean 的生命周期 <br>Bean 进阶管理 <br>理想上对于 Bean 来说,它不需要意识到 Spring 容器的存在,然而有时候 Bean 仍必须知道有关于 Spring 容器或自己的一些讯息,而另一方面,您可能必须让容器对 Bean 进行一些额外处理。<br>不使用XML定义档进行 Bean设置 <br>Aware 相关介面 <br>BeanPostProcessor <br>BeanFactoryPostProcessor <br>PropertyPlaceholderConfigurer <br>PropertyOverrideConfigurer <br>CustomEditorConfigurer <br>讯息与事件 <br>ApplicationContext 除了具备如 BeanFactory 基本的容器管理功能之外,并支援更多应用程式框架的特性,像是资源的取得、讯息解析、事件的处理与传播。<br>Resource 的取得 <br>解析文字讯息 <br>倾听事件 <br>事件传播 <br><br><br>AOP(Aspect-Oriented Programming) <br> 在一个服务的流程中插入与服务无关的逻辑(例如Logging、Security),这样的逻辑称为 Cross-cutting concerns,将 Crossing-cutting concerns 独立出来为一个物件,这样的特殊物件称之为 Aspect,Aspect-oriented programming 着重在 Aspect 的设计及与应用程式的缝合(Weave)。<br><br>AOP 入门 <br>AOP 的观念与术语都不是很直觉,可以先从代理机制(Spring 实现 AOP 的一种方式)来看看实际的例子,从而了解 AOP 的观念与各种术语。<br>从代理机制初探 AOP <br>动态代理<br><br>AOP 观念与术语 <br>Spring AOP <br>Advices <br>Advices 包括了Aspect 的真正逻辑,由于缝合至Targets的时机不同,Spring 提供了几种不同的 Advices。<br>Before Advice <br>After Advice <br>Around Advice <br>Throw Advice <br>Pointcut、Advisor <br>Pointcut 定义了 Advice 的应用时机,在 Spring 中,使用 PointcutAdvisor 将 Pointcut 与 Advice 结合成为一个物件,Spring 中大部分内建的 Pointcut 都有对应的 PointcutAdvisor。<br>NameMatchMethodPointcutAdvisor <br>RegExpMethodPointcutAdvisor <br>ControlFlowPointcut <br>Pointcut 介面 <br>Pointcut 交集、联集操作 <br>Introduction <br>为特殊的 Advice,它影响的不是方法的流程,而是影响整个物件的行为,为物件动态 mixin 职责。<br>IntroductionInterceptor <br>DelegatingIntroductionInterceptor <br>Autoproxing <br>自动代理可以让您不用为每一个要被 Advised 的 Target 手动定义代理物件,透过 Bean 名称或是 Pointcut 的比对,自动为符合的 Target 建立代理物件。<br>BeanNameAutoProxyCreator <br>DefaultAdvisorAutoProxyCreator <br><br><br>持久层 <br> 来看看 Spring 的 IoC 容器与 AOP 框架如何应用于持久层,包括了资料库、交易等相关议题。 <br>资料库存取 <br>Spring 提供了 DAO 框架,让应用程式开发时无须耦合于特定资料库技术。<br>Spring 的 DAO 支持 <br>DataSource 注入 <br>DataSource 置换 <br>JDBC 支援 <br>Spring 在 JDBC 的使用上提供了几个类别,让您可以简化 JDBC 在使用时的流程。<br>使用 JdbcTemplate <br>JdbcTemplate 执行与更新<br><br>JdbcTemplate - 查询 <br>以物件方式进行操作 <br>DataFieldMaxValueIncrementer <br>交易管理 <br>Spring 提供编程式的交易管理(Programmatic transaction management)与宣告式的交易管理(Declarative transaction management),为不同的交易实作提供了一致的编程模型。<br>Spring 对交易的支援 <br>JDBC 编程式交易管理 <br>JDBC 宣告式交易管理 <br>交易的属性介绍 <br>TransactionAttributeSource、 TransactionAttribute <br>Hibernate 支援 <br>Spring 整合了对 Hibernate 的设定,并提供有 HibernateTemplate 等类别,让您在结合 Hibernate 时可以简化使用上的流程。<br>第一个 Hibernate 程式 <br>SessionFactory 注入 <br>HibernateTemplate <br>Hibernate 编程交易管理 <br>Hibernate 宣告式交易管理 <br><br><br>Web 层 <br> Spring 提供了 MVC Web 框架,您可以善用 IoC 容器在依赖注入上的好处,另一方面,Spring 也致力于与其它的 Web 框架的整合。 <br>Spring MVC 入门 <br>从一个最简单的 Spring Web 应用程式,来看看 Spring MVC 框架的架构与 API 组成元素。<br>第一个 Spring MVC 程式 <br>WebApplicationContext <br>Handler Mapping <br>Handler Interceptor <br>Controller 继承架构 <br>ModelAndView <br>View Resolver <br>Exception Resolver <br>使用 Controller 相关类别 <br>与其它 Web 框架的 Action 物件不同的是,Spring 提供了丰富的 Controller 相关类别,让您可以依需求来制作自己所需的 Controller 物件。<br>AbstractController <br>MultiActionController 与 ParameterMethodNameResolver <br>MultiActionController 与 PropertiesMethodNameResolver <br>ParameterizableViewController <br>AbstractCommandController <br>AbstractFormController <br>SimpleFormController <br>AbstractWizardFormController <br>ThrowawayController <br>搭配 Controller 的类别 <br>介绍如何在 Controller上搭配使用验证器(Validator)、如何实作Command资料的型态转换,以及如何使用Spring的相关API来实作档案上传的功能。<br>实作 Validator <br>使用 PropertyEditor <br>档案上传<br><br><br><br>View层方案、Web框架整合 <br> 当使用JSP作为View层技术时,您可以结合JSTL以及Spring提供的标签,而除了JSP技术作为View层之外,Spring还提供了不同 View层技术的解决方案,您甚至可以定义自己的View层技术实现。 <br>JSP View 层 <br>当使用 JSP 作为 View 层技术时,您可以结合 JSTL 以及 Spring 提供的标签。<br>结合 JSTL <br><spring:bind> 标签 <br>数据绑定的几个方法 <br><spring:message> 标签 <br><spring:transform> 标签 <br>其它 View 层 <br>除了 JSP View 层技术之外,您还可以使用其它的 View 层技术,或建立自己的 View Class。<br>以 Tiles 为例 <br>自订 View Class <br>与其它 Web 框架的整合 <br>您可以将 Spring 与现在的一些 Web 框架结合在一起,重点都在于如何让 Web 框架意识到 Spring 的存在。<br>第一个 Struts 程式 <br>在 Struts 中整合 Spring <br>第一个 JSF 程式 <br>在 JSF 中整合 Spring <br><br><br>其它 <br> Spring 提供了简化且一致的方式,让您在使用一些 API 或服务时更加简单。 <br>远程(Remoting) <br>Spring 提供了一致的使用方式,即使所采用的远程服务技术不尽相同,在 Spring 中运用它们的方式却是一致的。<br>RMI <br>Hessian、 Burlap <br>Http Invoker <br>邮件 <br>对于邮件发送服务的支援是由Spring的 org.springframework.mail.MailSender介面所定义,它有两个实作类别, org.springframework.mail.cos.CosMailSenderImpl与 org.springframework.mail.javamail.JavaMailSenderImpl。<br>简单邮件 <br>HTML 邮件 <br>内嵌图片或附档 <br>排程 <br>Spring则对 java.util.Timer提供了抽象封装,让您可以善用Spring的容器管理功能,而Spring对Quartz进行了封装,让它在使用上更加方便。<br>使用 TimerTask <br>使用 MethodInvokingTimerTaskFactoryBean <br>使用 Quartz <br>使用 MethodInvokingJobDetailFactoryBean <br>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值