Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->Linux安全 ->Apache 门户项目组介绍
  相关分类: 
入门与提高
系统管理
网络应用
嵌入式系统
内核研究
服务器相关
发行版专区
Linux程序设计
Linux安全
BSD相关
桌面应用
  站内搜索: 
热门文章排行
热门文章排行 linux环境变量设置及保存地点 (04-22)
Apache 门户项目组介绍 (04-22)
黑客高级技巧 Linux后门技术及实践 (05-01)
安全多方位 Linux系统守护进程详解 (04-20)
UNIX 高手的10 个习惯 (04-22)
精采文章排行
精采文章排行 黑客高级技巧 Linux后门技术及实践 (05-01)
IP安全加密 IPSec安全技术全面接触 (05-01)
LINUX2.4.x网络安全框架 (04-26)
分级防御对Linux服务器的攻击 (04-26)
基于Linux开发的FireboxⅡFastVPN (04-26)
  ·黑客高级技巧 Linux后门技术及实践 ·LINUX2.4.x网络安全框架 ·分级防御对Linux服务器的攻击 ·基于Linux开发的FireboxⅡFastVPN ·十项Linux安全管理技巧经验总结 ·高级Linux安全管理技巧 ·发现Linux压缩格式漏洞 达第二最危险级别·Unix和Linux下的Acrobat Reader 5受攻击 ·Linux操作系统下防垃圾邮件基本功

Apache 门户项目组介绍

作者:廖 健    来源:IBW DW中国   点击:   日期:2007-04-22 [收藏] [投稿]

  IE是否经常中毒?推荐您


Jetspeed SearchEngine Component Definition
<beans default-lazy-init="false" default-dependency-check="none"
default-autowire="no">
 <!-- 
SEARCH COMPONENT
  -->
<bean id="org.apache.jetspeed.search.SearchEngine"
class="org.apache.jetspeed.search.lucene.SearchEngineImpl" abstract="false"
singleton="true" lazy-init="default" autowire="default"
dependency-check="default">
        <constructor-arg index="0">
            <value>${applicationRoot}/WEB-INF/search_index</value> 
        </constructor-arg>
        <constructor-arg index="1">
            <null /> 
        </constructor-arg>
<constructor-arg type="boolean">
            <value>true</value> 
        </constructor-arg>
        <constructor-arg>
            <ref bean="org.apache.jetspeed.search.HandlerFactory" /> 
       </constructor-arg>
</bean>
</beans>

Jetspeed在实现过程中遵循着面向接口编程的最佳实践,上图中的Bean id为org.apache.jetspeed.search.SearchEngine,事实上这是一个定义在核心jetspeed-api组件中的接口,org.apache.jetspeed.search.lucene.SearchEngineImpl为该接口的实现类,这个类定义在 components/search组件中,后面的内容就是SearchEngineImpl的构造函数的输入参数,注意最后一个参数 org.apache.jetspeed.search.HandlerFactory也是一个Java Interface的接口。Spring在实例化SearchEngine的时候,会首先分析它的构造函数参数是否已经全部满足条件(实例化), Spring会根据搜索bean id为org.apache.jetspeed.search.HandlerFactory的bean,如果已经实例化就直接注入到 SearchEngineImpl的构造函数调用里;如果没有就实例化这个bean之后,再注入。

Apache OJB O/R Mappers

由于Spring对Apache OJB提供良好的支持,因此Jetspeed中与数据库相关的功能基本上都用过Spring的PersistenceBrokerDaoSupport实现。这些组件包括:Capablity、DatabasePageManager、PipeLine、Preferences、Profiler、 Registry、Security、SSO等。O/R Mapping的信息定义在上面这些组件jar包中的JETSPEED-INF/ojb/%component name%_repository.xml文件中,其中%component name%需要用组建名称替代。

Declarative transaction management

在Jetspeed中,你找不到一行有关于数据库事务的代码,这是因为它采用了Spring的declarative transaction机制,下面一段XML定义了SSOProvider的事物管理:


Declarative Transaction
<beans default-lazy-init="false" default-dependency-check="none"
default-autowire="no">
<!-- 
 SSO Implementation 
  --> 
<bean id="PersistenceBrokerSSOProvider"
class="org.apache.jetspeed.sso.impl.PersistenceBrokerSSOProvider"
init-method="init" abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
        <constructor-arg index="0">
            <value>JETSPEED-INF/ojb/sso_repository.xml</value> 
       </constructor-arg>
    </bean>
<bean id="org.apache.jetspeed.sso.SSOProvider" parent="baseTransactionProxy"
name="ssoProvider" abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
        <property name="proxyInterfaces">
            <value>org.apache.jetspeed.sso.SSOProvider</value> 
        </property>
<property name="target">
            <ref bean="PersistenceBrokerSSOProvider" /> 
        </property>
        <property name="transactionAttributes">
<props>
                <prop key="addSite*">PROPAGATION_REQUIRED</prop> 
               <prop key="updateSite*">PROPAGATION_REQUIRED</prop> 
               <prop key="removeSite">PROPAGATION_REQUIRED</prop>
  <prop key="addCredentialsForSite">PROPAGATION_REQUIRED</prop>
<prop key="updateCredentialsForSite">PROPAGATION_REQUIRED</prop>
<prop key="removeCredentialsForSite">PROPAGATION_REQUIRED</prop> 
         <prop key="setRealmForSite">PROPAGATION_REQUIRED</prop> 
         <prop key="*">PROPAGATION_SUPPORTS</prop> 
           </props>
        </property>
    </bean>
</beans>

由上图可知,通过Spring 的Declarative Transaction机制,Jetspeed很轻易实现了细颗粒度的事物管理,用户可以很容易配置需要管理事务的方法,如"addSite*"、 "updateSite*"和"removeSite"等等,其中"*"为通配符,详细信息见此处

Spring MVC

由于Jetspeed对Spring的天生依赖,很自然Jetspeed也支持基于Spring MVC framework,详见Jetspeed自带的例子Portlet应用程序。

Jetspeed 组件架构启动过程

看了前面的介绍,你一定想知道Jetspeed是怎么样将基于Spring的组件架构和标准JEE Web Application架构融合在一起,本节将通过描述Jetspeed Web Application的启动过程来了解融合的细节。首先请看下图:

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 5 6 7 8 下一页

上一篇:LVM 五分钟教程   下一篇:深入Linux PAM 体系结构
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·IP安全加密 IPSec安全技术全面接触

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。