易截截图软件、单文件、免安装、纯绿色、仅160KB

[译文]Java EE 6中的依赖注入——第1部分

原文:Dependency Injection in Java EE 6 – Part 1
作者:Reza Rahman
出处:http://www.theserverside.com/tt/articles/article.tss?l=DependencyInjectioninJavaEE6
 
这一文章系列介绍了Java EE的上下文和依赖注入(Contexts and Dependency Injection for Java EE,CDI),CDI是即将完成的Java EE 6平台的关键组成部分,经由JSR 299进行标准化。CDI是Java EE整个下一代类型安全的依赖注入的事实上的API。JSR 299由Gavin King领导,其目标是综合来自诸如Seam、Guice和Spring一类的解决方案的最好的依赖注入功能,同时加入许多自己的有用创新。
本文是文章系列的第一篇,我们打算从一个高层面来研究CDI,看看它是如何与Java EE整体相配合的,并讨论基础的依赖管理及作用域。在这一系列文章的介绍过程中,我们会涉及组件命名、版型(stereotype)、生产者(producer)、处置者(disposer)、装饰器(decorator)、拦截器(interceptor)、事件、用于可移植扩展的CDI API等,以及更多诸如此类的功能。我们还将讨论CDI如何与Seam、Spring以及Guice保持一致,并通过一些使用CanDI的实现细节来补充这一讨论。CanDI是Caucho对JSR299的独立实现,被收入到Resin应用服务器中。
 
快速回顾
 
Java EE 5的主要关注点是凭借POJO编程、注解和约定高于配置(convention-over-configuration)等方面来使得自身易于使用,Java EE 5中确实有依赖注入的基本形式,也许对其最恰当的术语称谓是资源注入(resource injection)。具体来说,你可以借助@Resource、@PersistenceContext、@PersistenceUnit和@EJB等注解把JMS连接工厂、数据源、队列、JPA实体管理器、实体管理器工厂和EJB一类的容器资源注入到Servlet、JSF后台bean(JSF backing bean)和其他的EJB中。这种模型适用于包含了被写成EJB和JSF的JPA领域对象、服务和DAO的应用。
不过,为了一些用例,你不得不求助于像Seam、Spring或Guice一类的更通用的依赖注入技术,例如,你不能把EJB注入到Struts Action或者JUnit测试中,以及不能注入因为不需要事务而没有被编写成EJB的DAO或者助手(helper)类中;另外,很难整合第三方/内部的API或者是使用Java EE 5作为构建这种并非仅仅是严格的业务组件的API的基础。而这些正好是CDI旨在解决的那一类问题,CDI以一种很好地吻合了Java理念的高度类型安全、稳定及可移植的方式来解决这些问题。实际上,Resin容器本身的许多部分都是利用JSR 2


相关文档:

Effective in Java 笔记

1、用静态工厂方法代替构造函数
优点:
与构造函数不同,静态工厂方法具有名字(表意好)。
每次被调用时,不要求非得创建一个新的对象。
可以返回一个原返回类型的子类型对象。
缺点:
类如果不含有公有的或受保护的构造函数,就不能被子类化。
它们于其他的静态方法没有任何区别(易混淆) 
......

Java Web开发构想

 1.背景、形势
能够进行Web开发的编程语言和技术很多
(1) 动态解释语言
PHP; Perl; Python (Zope, Plone); Ruby (Ruby on Rails);
(2) 编译语言
Java; .net
Java Web开发远非一枝独秀:
除了受到来自.net 这个重量级对手的最大挑战之外,更受到Zope, Ruby on Rail 等新式轻骑兵的冲击(当然,也继续受到老式轻 ......

php和java上传文件的方法

java上传文件
需要的第三方jar包有(这里使用apache的)
apache的commons-fileupload(上传用),commons-io (listener清理类用) , commons-beanutils(可选)
具体操作
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
if(ServletFileUp ......

Java 程序内存分析

   java程序内存主要分为了2个部分,包括 stack segment(栈内存)、heap segment(堆内存)。 
    在分析Java程序内存分配情况时,我们从下面这个经常被使用的例子开始吧。 
    下面程序将打印什么呢? 
   
Java代码 
String s1&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号