JavaWeb开发常用名词解释

1.DAO(Data Access Object):是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。

2.Apache Shiro:是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。三个核心组件:Subject, SecurityManager 和 Realms。

3.Nexus:Maven私服的一种。

4.ZooKeeper:是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。

5.Dubbo:是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能。

6.CAS(Central Authentication Server)中央认证服务:是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法。

7.DSL(Domain Specific Languages领域定义语言):是一种帮助用户从一个系统中抽象出某些部分的工具,不仅提高了代码的易读性,让开发者可以和领域专家更好的交流,而且是改变执行上下文的一种手段。

8.约定优于配置(convention over configuration),本质是说,开发人员仅需规定应用中不符约定的部分。例如,如果模型中有个名为Sale的类,那么数据库中对应的表就会默认命名为sales。只有在偏离这一约定时,例如将该表命名为”products_sold”,才需写有关这个名字的配置。如果你所用工具的约定与你的期待相符,便可省去配置;反之,你可以配置来达到你所期待的方式。

9.Redis是一个key-value存储系统。它支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

10.Spring项目中,Controller文件,其中包含@RestController意为Controller内的方法都以json格式输出,如果为@Controller则代表输出为页面。

11.生产者消费者模式:生产者生产消息放到队列里,多个消费者同时监听队列,谁先抢到消息谁就会从队列中取走消息;即对于每个消息只能被最多一个消费者拥有。
发布者订阅者模式:发布者生产消息放到队列里,多个监听队列的消费者都会收到同一份消息;即正常情况下每个消费者收到的消息应该都是一样的。

12.SOA(Service-Oriented Architecture),即面向服务的架构。是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。可以看作是B/S模型、XML(标准通用标记语言的子集)/Web Service技术之后的自然延伸。

13.Preconditions是guava提供的用于进行代码校验的工具类,其中提供了许多重要的静态校验方法,用来简化我们工作或开发中对代码的校验或预 处理,能够确保代码符合我们的期望,并且能够在不符合校验条件的地方,准确的为我们显示出问题所在。

展开阅读全文

J2EE开发常用开源项目名词解释

08-23

根目录rn主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库rn1持久层:rn1)Hibernatern这个不用介绍了,用的很频繁,用的比较多的是映射,包括继承映射和父子表映射rn对于DAO在这里介绍个在它基础上开发的包bba96,目前最新版本是bba96 2.0它对Hibernate进行了封装, 查询功能包括执行hsql或者sql查询/更新的方法,如果你要多层次逻辑的条件查询可以自己组装QueryObject.可以参考它做HibernateDAO.也可以直接利用它rn2) iBATISrn另一个ORM工具,没有Hibernate那么集成,自由度比较大,所以使用时普遍性能上比Hibernate要快一些.rn2:SpringMVCrn原理说明和快速入门:rn配置文件为:rnSpring的配置文件默认为WEB-INF/xxxx-servelet.xm其中xxx为web.xml中org.springframework.web.servlet.DispatcherServlet的servlet-name。rnAction分发:rnSpring将按照配置文件定义的URL,Mapping到具体Controller类,再根据URL里的action= xxx或其他参数,利用反射调用Controller里对应的Action方法。rn输入数据绑定:rnSpring提供Binder 通过名字的一一对应反射绑定Pojo,也可以直接从request.getParameter()取数据。rn输入数据验证rnSping 提供了Validator接口当然还可以使用开源的Commons-Validaor支持最好rnInterceptor(拦截器)rnSpring的拦截器提供接口需要自己编写,在这点不如WebWork做的好.全面rn(这里提一下WebWork和Struts的区别最主要的区别在于WebWork在建立一个Action时是新New一个对象而Struts是SingleMoule所有的都继承它的一个Action,所以根据项目需要合适的选择.)rn3:View层rn1) 标签库:JSP2.0/JSTLrn由于Webwork或Spring的标签确实很有限,一般view层用JSTL标签,而且据说JSTL设计很好速度是所有标签中最快的使用起来也很简单rn2) 富客户端:DOJO Widgets, YUI(YahooUI),FCKEditor, Coolest日历控件rnDojo主要提供Tree, Tab等富客户端控件,可以用其进行辅助客户端开发rnYahooUI和DOJO一样它有自己的一套javas.c.r.i.p.t调试控制台,主要支持ajax开发也有很多Tree,Table,Menu等富客户端控件rnFCKEditor 最流行的文本编辑器rnCoolest日历控件 目前很多日历控件可用,集成在项目中也比较简单,这个只是其中的一个,界面不错的说..rn3) Javas.c.r.i.p.t:Prototype.jsrnPrototype.js作为javas.c.r.i.p.t的成功的开源框架,封装了很多好用的功能,通过它很容易编写AJAX应用,现在AJAX技术逐渐成熟,框架资源比较丰富,比如YUI,DWR等等,也是因为Javas.c.r.i.p.t没有合适的调试工具,所以没有必要从零开始编写AJAX应用,个人认为多用一些成熟的Ajax框架实现无刷新更新页面是不错的选择.rn4)表格控件:Display Tag ,Extreme Tablern这两个的功能差不多,都是View层表格的生成,界面也比较相向,可以导出Excel,Pdf,对Spring支持很容易.rn相比较而言比较推荐ExtremeTable,它的设计很好功能上比DisplayTag多一些,支持Ajax,封装了一些拦截器,而且最方面的是在主页wiki中有详细的中文使用文档.rn5):OSCachernOSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件,Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统的稳定性和运行性能。rn它主要用在处理短时间或一定时间内一些数据或页面不会发生变化,或将一些不变的统计报表,缓冲在内存,可以充分的减轻服务器的压力,防治负载平衡,快速重启服务器(通过硬盘缓存).rn6)SiteMeshrnsitemesh应用Decorator模式主要用于提高页面的可维护性和复用性,其原理是用Filter截取request和response,把页面组件head,content,banner结合为一个完整的视图。通常我们都是用include标签在每个jsp页面中来不断的包含各种header, stylesheet, s.c.r.i.p.ts and footer,现在,在sitemesh的帮助下,我们删掉他们轻松达到复合视图模式.rnSitemesh也是 OpenSymphony的一个项目现在最近的版本是2.2,目前OpenSymphony自从04年就没有更新的版本了..感觉它还是比较有创新的一种页面组装方式, OpenSymphony开源组织的代码一般写的比较漂亮,可以改其源代码对自己的项目进行适配.rn测试发现Sitemesh还存在一些问题,比如中文问题,它的默认编码是iso-8859-1在使用时候需要做一些改动.rn7)CSS,XHTMLrn这个不用说了,遵循W3C标准的web页面开发.rn8)分页标签: pager-taglib组件rnPager-taglib 是一套分页标签库,可以灵活地实现多种不同风格的分页导航页面,并且可以很好的与服务器分页逻辑分离.使用起来也比较简单.rn9)Form: Jodd Form taglibrnJodd Form taglib使用比较简单,只要把 的头尾以包住rn就会自动绑定mybean, 自动绑定mybean的所有同名属性到普通html标记input, selectbox, checkbox,radiobox.....在这些input框里不用再写任何代码…rnrn10)Ajax:DWRrnJ2EE应用最常用的ajax框架rnrn11)报表 图表rnEclipse BIRT功能比较强大,也很庞大..好几十M,一般没有特别需求或别的图表设计软件可以解决的不用它rnJasperReports+ iReport是一个基于Java的开源报表工具,它可以在Java环境下像其它IDE报表工具一样来制作报表。JasperReports支持PDF、HTML、XLS、CSV和XML文件输出格式。JasperReports是当前Java开发者最常用的报表工具。rnJFreeChart主要是用来制作各种各样的图表,这些图表包括:饼图、柱状图(普通柱状图以及堆栈柱状图)、线图、区域图、分布图、混合图、甘特图以及一些仪表盘等等。rnrn4:权限控制: AcegirnAcegi是Spring Framework 下最成熟的安全系统,它提供了强大灵活的企业级安全服务,如完善的认证和授权机制,Http资源访问控制,Method 调用访问控制等等,支持CASrn(耶鲁大学的单点登陆技术,这个单点登陆方案比较出名.我也进行过配置使用,可以根据项目需要,如果用户分布在不同的地方不同的系统通用一套登陆口令可以用它进行解决,一般注册机登陆机就是这样解决的)rnAcegi只是于Spring结合最好的安全框架,功能比较强大,当然还有一些其他的安全框架,这里列举一些比较流行的是我从网上找到的,使用方法看其官方文档把…rnJAAS, Seraph, jSai - Servlet Security, Gabriel, JOSSO, Kasai, jPAM, OpenSAML都是些安全控制的框架..真够多的呵呵rn5:全文检索rn1) LucenernLucene是一套全文索引接口,可以通过它将数据进行倒排文件处理加入索引文件,它的索引速度和查询速度是相当快的,查询百万级数据毫秒级出结果,现在最火的Apache开源项目,版本更新速度很快现在已经到了2.0,每个版本更新的都比较大,目前用的最多的版本应该是1.4.3,但它有个不太方面的地方单个索引文件有2G文件限制,现在2.0版本没有这个限制,我研究的比较多,它的扩展性比较好,可以很方面的扩充其分词接口和查询接口.rn基于它的开发的系统很多,比如最常用的Eclipse的搜索功能,还有一些开源的软件比如Compass,Nutch,Lius,还有我最近做的InSearch(企业级FTP文件网页搜索)rn6:公共Util类rn主要是Jakarta-Commons类库,其中最常用得是以下几个类库rn1) Jakarta-Commons-Languagern最常用得类是StringUtils类,提供了使用的字符串处理的常用方法效率比较高rn2) Jakarta-Commons-Beantuilsrn主要用Beantuils能够获得反射函数封装及对嵌套属性,map,array型属性的读取。rn3) Jakarta-Commons-Collectionsrn里面有很多Utils方法rn7 日志管理rnLog4Jrn任务是日志记录,分为Info,Warn,error几个层次可以更好的调试程序rn8 开源的J2EE框架rn1) AppfusernAppfuse是Matt Raible 开发的一个指导性的入门级J2EE框架, 它对如何集成流行的Spring、Hibernate、iBatis、Struts、Xdcolet、JUnit等基础框架给出了示范. 在持久层,AppFuse采用了Hibernate O/R映射工具;在容器方面,它采用了Spring,用户可以自由选择Struts、Spring/MVC,Webwork,JSF这几个Web框架。rnrn2) SpringSidern.SpringSide较完整的演示了企业应用的各个方面,是一个电子商务网站的应用 SpringSide也大量参考了Appfuse中的优秀经验。最重要的是它是国内的一个开源项目,可以了解到国内现在的一些实际技术动态和方向很有指导意义…rn9:模版 Templatern主要有Veloctiy和Freemarkerrn模板用Servlet提供的数据动态地生成 HTML。编译器速度快,输出接近静态HTML 页面的速度。rn10:工作流rn我所知道比较出名的主要有JBpm Shark Osworkflow,由于对它没有过多的研究所以还不是很清楚之间有什么区别.rn项目管理软件rndotProject:是一个基于LAMP的开源项目管理软件。最出名的项目管理软件rnJIRA: 项目计划,任务安排,错误管理rnBugzilla:提交和管理bug,和eclipse集成,可以通过安装MyEclipse配置一下即可使用rnBugFree借鉴微软公司软件研发理念、免费开放源代码、基于Web的精简版Bug管理rnCVS:这个就不介绍了都在用.rnSVN: SubVersion已逐渐超越CVS,更适应于JavaEE的项目。Apache用了它很久后,Sourceforge刚刚推出SVN的支持。rn测试用例:主要JUnit单元测试,编写TestCase,Spring也对Junit做了很好的支持rn后记:rn以Spring为主的应用开发可选用的组件中间件真是眼花缭乱,所以针对不同的项目需求可以利用不同的开源产品解决,比如用Spring+Hibernate/ iBATIS或Spring+WebWork+Hibernate/ iBATIS或Spring+Struts+Hibernate/ iBATIS,合理的框架设计和代码复用设计对项目开发效率和程序性能有很大的提高,也有利于后期的维护.rn rnrn 论坛

没有更多推荐了,返回首页