我的个人站点搭建 框架选择

来源:互联网 发布:ubuntu jdk 64位下载 编辑:程序博客网 时间:2024/05/21 00:20

一、为什么选择用框架

  使用框架最大的好处可以让我们程序员专注于写业务逻辑代码,而不用话费大量的时间在一些没有技术含量、逻辑思维在其中的但是却不得不写重复代码。

二、框架的选择

Spring

  提到框架 ,首先想到的一定有spring,它的优点体现在我们遇到的各种难解决领域。总结优点有以下几点
1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2.可以提供众多服务,事务管理,WS等。
3.AOP的很好支持,方便面向切面编程。
4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等
5.Spring DI机制降低了业务对象替换的复杂性。
6.Spring属于低侵入,代码污染极低。
7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

SpringMvc

  选择了Spring,那么选择SpringMvc就是顺理成章的了。
  1. springmvc提供清晰的角色划分:控制器(controller)、验证器(validator)、命令对象(command obect)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、试图解析器(view resoler)等等。每一个角色都可以由一个专门的对象来实现。

  2. 强大而直接的配置方式:将框架类和应用程序累都能作为JavaBean配置,支持跨多个context的引用,例如,在web控制器中对业务对象和验证器validator)的引用。

  3. 可适配、非侵入:可以根据不同的应用场景,选择何事的控制器子类(simple型、command型、from型、wizard型、multi-action型或者自定义),而不是一个单一控制器(比如Action/ActionForm)继承。

  4. 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。

  5. 可定制的绑定(binding)和验证(validation):比如将类型不匹配作为应用级的验证错误,这可以保证错误的值。再比如本地化的日期和数字绑定等等。在其他某些框架中,你只能使用字符串表单对象,需要手动解析它并转换到业务对象。

  6. 可定制的handler mapping和view resolution:spring提供从最简单的URL映射,到复杂的、专用的定制策略。与某些web MVC框架强制开发人员使用单一特定技术相比,Spring显得更加灵活。

  7. 灵活的model转换:在Springweb框架中,使用基于Map的键/值对来达到轻易的与各种视图技术集成。

  8. 可定制的本地化和主题(theme)解析:支持在JSP中可选择地使用Spring标签库、支持JSTL、支持Velocity(不需要额外的中间层)等等。

  9. 简单而强大的JSP标签库(Spring Tag Library):支持包括诸如数据绑定和主题(theme)之类的许多功能。他提供在标记方面的最大灵活性。

  10. JSP表单标签库:在Spring2.0中引入的表单标签库,使用在JSP编写表单更加容易。

  11. Spring Bean的生命周期可以被限制在当前的HTTp Request或者HTTp Session。准确的说,这并非Spring MVC框架本身特性,而应归属于Spring MVC使用的WebApplicationContext容器。
  
Hibernate

  对于数据库的选择,可能会在mybatis 和 hibernate之间有一定的争议,它们之间的对比网上也有大量的资料。个人还是偏向于使用hibernate。
  Hibernate对数据库结构提供了较为完整的封装,Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执行。
  而且hibernate对于复杂查询有较为完善的映射机制。不用手动的添加sql代码
  对于更高的要求,调优缓存等等方面,对持久层操作的热门框架中都基本是各有优劣。我们暂时不考虑这些,笔者能力暂时处于慢慢解封中。

Spring Data Jpa

  有了ssh以后,最基础的框架就可以搭建了。跑一个简单的框架版本hello world 没问题。
  对于基础的小项目还可以慢慢的一个个写“dao”层访问,但是对于稍微大一些的项目,这无疑是个让人很抓狂的事情。
  这时候可爱的spring data jpa就出来了0.0。
  Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。
  Spring Data Jpa 极大简化了数据库访问层代码,只要3步,就能搞定一切
  1. 编写Entity类,依照JPA规范,定义实体
  2. 编写Repository接口,依靠SpringData规范,定义数据访问接口(注意,只要接口,不需要任何实现)
  3. 写一小陀配置文件 (Spring Scheme配置方式极大地简化了配置方式)

shiro

  在稍微成熟点的项目中,我们会遇到各种权限问题,单个用户的权限、session的管理、登录登出的安全、各种拦截… …。又是一个大工程呢,而且随着项目的不断扩展这个问题会越来越麻烦。
  这时候给力的框架又来了(-V-)
  Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。这不就是我们想要的嘛。