java简述象的组成部分ssh中各个部分如何整个在一起的

SSH中各组件的依赖注入关系,简述就行_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
SSH中各组件的依赖注入关系,简述就行
我有更好的答案
impl.DueBizImpl&&&property name=&dueDao& ref=&bean name=&quot.DueDaoImpl&/&&/ ref=&sessionFactory&/&gt,&lt.SalChangeAction&&&property name=&is& ref=&quot:实例&&/SalChangeAction&dueDao&&&&/bean&Biz的实现类中注入Dao,示例&bean id=&dueBiz& class=&dueBiz&bean&&property name=&quot.dueDao&bean id=&&lt. class=&com.pro.web. / ref=&dueBiz&/ class=&com.pro.dao.sessionFactory&property name=&&salChanceBiz&Action中注入需要的BizDao的实现类中注入sessionFactory
就不告诉你 我已经答完了
但是是蒙的
为您推荐:
其他类似问题
您可能关注的内容
ssh的相关知识
等待您来回答简述ssh中各个部分如何整个在一起的_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
简述ssh中各个部分如何整个在一起的
简述ssh中各个部分如何整个在一起的
我有更好的答案
网上有很多资料的,如果你对ssh知识都会的话,整合是很简单的
采纳率:38%
为您推荐:
其他类似问题
ssh的相关知识
等待您来回答SSH中各个框架的作用以及Spring AOP,IOC,DI详解 - CSDN博客
SSH中各个框架的作用以及Spring AOP,IOC,DI详解
在SSH框假中spring充当了管理容器的角色。我们都知道Hibernate用来做持久层,因为它将JDBC做了一个良好的封装,程序员在与数据库进行交互时可以不用书写大量的SQL语句。Struts是用来做应用层的,他它负责调用业务逻辑serivce层。所以SSH框架的流程大致
是:Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右)struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖和强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处
首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,投其所好送其所要,然后嘿嘿……这个过程是复杂深奥的,我们必须自己设计和面对每个环节。传统的程序开发也是如此,在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来。
那么IoC是如何做的呢?有点像通过婚介找女朋友,在我和女朋友之间引入了一个第三者:婚姻介绍所。婚介管理了很多男男女女的资料,我可以向婚介提出一个列表,告诉它我想找个什么样的女朋友,比如长得像李嘉欣,身材像林熙雷,唱歌像周杰伦,速度像卡洛斯,技术像齐达内之类的,然后婚介就会按照我们的要求,提供一个mm,我们只需要去和她谈恋爱、结婚就行了。简单明了,如果婚介给我们的人选不符合要求,我们就会抛出异常。整个过程不再由我自己控制,而是有婚介这样一个类似容器的机构来控制。Spring所倡导的开发方式就是如此,所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在系统运行到适当的时候,把你要的东西主动给你,同时也把你交给其他需要你的东西。所有的类的创建、销毁都由
spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是spring。对于某个具体的对象而言,以前是它控制其他对象,现在是所有对象都被spring控制,所以这叫控制反转。
& IoC的一个重点是在系统运行中,动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖
Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。
这个概念有点复杂!首先还是打个比方吧!比如我们在要在网站上注册登录的案例,在注册时我们要完成校验,文件上传,获取用户信息只有将这些动作完成后才能做保存用户的操作,如果报所有的业务逻辑放到一起处理的话,那么就显得过于繁杂不利于后期的开发和维护,AOP的做法是把目标类(又称目标对象)保存用户单独提出来,把校验,文件上传,获取用户信息当做切面,这样就很好的做到了解耦把业务逻辑和切面分离,有利于开发和后期维护!
A.&Aspect(切面)比如说事务、权限等,与业务逻辑没有关系的部分&
B.&joinpoint(连接点)目标类的目标方法。(由客户端在调用的时候决定)
C.&Pointcut(切入点)所谓切入点是指我们要对那些拦截的方法的定义被纳入中的目标类的方法。
D.&Advice(通知)所谓通知是指拦截到之后所要做的事情就是通知通知分为前置通知后置通知异常通知最终通知环绕通知切面要完成的功能)
E.&Target(目标对象):代理的目标对象&
F.&Weaving(织入)是指把切面应用到目标对象来创建新的代理对象的过程切面在指定的连接点织入到目标对象&
JDKProxy代理
拦截器类中的方法
被拦截到的目标类中方法的集合
在客户端调用的方法(目标类目标方法)
代理类的代理方法生成的过程
通知根据拦截目标类中的目标方法的位置不一样可以分为:前置通知、后置通知、最终通知、环绕通知、异常通知
&&&2、AOP实现的两种模式
&&&&&&&&()、xml形式
&()、注解形式
概念:代理模式的英文叫做或,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用
&&&&1、动态代理
JDK的动态代理必须具备四个条件:
&&&&&&&&&&目标接口
&&&&&&&&&&目标类
&&&&&&&&&&拦截器
&&&&&&&&&&代理类
&&&&1、因为利用JDKProxy生成的代理类实现了接口,所以目标类中所有的方法在代理类中都有。
&&&&2、生成的代理类的所有的方法都拦截了目标类的所有的方法。而拦截器中invoke方法的内容正好就是代理类的各个方法的组成体。
&&&&3、利用JDKProxy方式必须有接口的存在。
&&&&4、invoke方法中的三个参数可以访问目标类的被调用方法的API、被调用方法的参数、被调用方法的返回类型。
2、CGLIB做代理
&&&&1、&CGlib是一个强大的,高性能,高质量的Code生成类库。它可以在运行期扩展Java类与实现Java接口。
&&&&2、&用CGlib生成代理类是目标类的子类。
&&&&3、&用CGlib生成&代理类不需要接口
&&&&4、&用CGLib生成的代理类重写了父类的各个方法。
&&&&5、&拦截器中的intercept方法内容正好就是代理类中的方法体
有两种代理方式:
若目标对象实现了若干接口,使用的类代理。
&&&&优点:因为有接口,所以使系统更加松耦合
&&&&缺点:为每一个目标类创建接口
若目标对象没有实现任何接口,使用库生成目标对象的子类。
&&&&优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。
&&&&缺点:因为没有使用接口,所以系统的耦合性没有使用的动态代理好。
的动态代理实现:
&拦截器必须实现接口
在中的配置
&&&&总结:不管采用JDK动态代理生成代理类还是采用CGLIB生成动态代理类。目标类中的所有方法都被拦截下来。而在哪个方法里做比如权限的判断、安全性的检查等一系列工做必须在拦截器中作相应的判断。但是这样的编程形式给程序的编写带来了一定的麻烦。
1、&在拦截器中控制哪些方法将被做权限判断、安全性检查等是一件比较困难的事情。
&&&&A.&采取这样的配置目标类只能是一个,所以如果用这种方法做权限控制,得写很多代理,这样给代码的书写造成了困难。
&&&&B.&每一个类中的每一个方法如果都有不同的权限(实际的系统往往都是这样的),在拦截器中的判断代码书写会很困难。
2、&这样的代码也会导致硬编码,也就是说我们必须在拦截器中写一些权限判断等事情,会导致拦截器中代码量的增大,造成维护的麻烦。
本文已收录于以下专栏:
相关文章推荐
一、前言      在上一篇博客《【SSH】SSH框架(二)——Struts2框架的简单认识》中小编向大家简单的介绍了SSH框架中的第一个S,也就是Struct2。接下来小编将会向大家分享第二个S——...
AOP(Aspect Oriented Programming),意思是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统 OOP(Object-Oriented Programming,面向对象编程)...
IoC使得面向对象的世界更加简单,使面向接口编程成为了可能。
切面编程原理:
做实验时遇到 sqlplus输出串行问题:
  
     第一反应,输出行字符数不够,于是作了如下修改:
      
    仍然没解决问题,继续修改linesize,pages...
JEECG简单实例讲解自定义表单功能
IOC/DI:中文意思控制反转/依赖注入,针对以前编程,类中的属性都是写死的,直接在程序中给成员变量初始化。这样的编程,耦合度太高,代码的灵活性和扩展性太差。spring的处理方式是,在配置文件中,将...
本博客所有博文都是本人日常搜索保存到word文档中,会有自己本人的理解和不少网上其他大牛的知识,因时间长无法追溯到获取来源,无法声明转载,望谅解!如有意见,可私信联系本人。此微博所有博文都只是用于个人...
他的最新文章
讲师:王禹华
讲师:宋宝华
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)当前位置: >>
基于SSH架构的J2EE
信 息 技 术基于SSH架构的J2EE(OA)的设计与实现汪 青 钟乐海(西华师范大学计算机学院,四川 南充 637002) 摘 要:本文针对目前J2EE企业级应用开发中的一种流行的轻量级框架SSH,介绍了SSH框架开发的特点及要求,分析了 SSH框架中各个开源架构关键技术的基本特征,阐述了如何更好地将三者整合起来以达到一个健壮、高效、易于维护与 扩展的轻型J2EE架构,最终实现多层开发的低耦合,最后以OA系统开发为例,对其应用于OA的开发与设计进行了研究。 关键词:SSH;J2EE;Struts;Spring;Hibernate目前,对于J2EE技术的应用开发,尤其针对企业级应 用开发,由于其开发的复杂性,可以将SSH框架采用分层结 构的开发策略,将其分为表现层,业务逻辑层,持久层, 领域模型层,如果采用单一的框架结构,就会产生高耦 合,难于维护与扩展;为此,针对不同应用程序的需要, 采取不同的开发框架策略,这里就采用目前最流行最规范 的J2EE架构中的SSH(STRUTS+SPRING+HIBERNAT)框架,该框 架层次结构极为清晰,各层之间以松耦合的方法组织在一 起,首先介绍了三种开源框架关键技术的基本特征,然后 阐述了将三者如何整合,最后以OA系统开发为例并给出其 实现类代码。 1 Struts、Spring、Hibernate 框架介绍 1.1 何谓Struts Struts在英文中是“骨架,支柱”的意思,这一含义 表明了Struts在Web开发中的巨大作用。采用Struts可以更 好地遵循MVC模式,MVC模式通过将代码分成三个不同的领 域,实现了后台控制维护,前台表现,以及业务逻辑处理 的分层管理。其中,后台控制维护由控制器组件 ActionServlet来担任,它是Struts的核心;前台表现由视图 组件JSP来充当,包括自定义的ActionForm类和Struts标签, 其中自定义的ActionForm类用于封装request中的数据参数, Struts可以将request中的数据自动填充到ActionForm类中, 从而避免了繁琐的request.getParameter()和类型转换, Struts的标记库是一个JSP自定义标记集合,通过这些标记 库可以与Model实现很好的交互,允许扩展并定制JSP功 能,能够很好地维护JSP文件;业务逻辑处理由Action类与 Java Bean来实现,代表客户的一个操作(如:登录),自 定 义 的 Action类 继 承 自 Struts提 供 的 Action, 如 计 划 Plan类。在OA系统中如果只使用Struts 框架,存在着层次 结构不清,耦合度高的问题,从而不利于系统的灵活性、 复用性、可维护性与可伸缩性。所以,可以将Struts 独立 地作为表现层框架来开发,而其他层可以用其他的框架来 充当角色。 1.2 何谓Spring收稿日期:2009-03-04 修回日期: 2009-04-03Spring是一款开源的优秀的基于MVC结构的服务层(业 务层)应用开发框架,是为了解决企业应用程序复杂性而创 建的,它具有一些良好的性能:如DI(依赖注入)与IOC) 控制反转和AOP(面向方面编程)。其中,Inversion of control (IOC)控制反转――程序的主控权由应用程序代码 本身转移到了容器或者框架,Dependency Injection(DI)依 赖注入――容器在运行期将某种依赖关系注入到组件中,也 就是将Spring的Bean以配置文件组织在一起,而不是以硬编 码的方式组织。AOP(Aspect Oriented Programming)面向 方面编程可以保证系统重构的工作被封闭在重构的层内, 不会影响到其他层。Spring的核心技术是控制反转IOC与 AOP代理机制。 Spring框架由7个模块组成,这些模块建立在核心容器 之上,核心模块定义了创建、配置与管理Bean的方式,其 中 最 重 要 的 类 是 Bean Factory和 Application Context Spring。框架先通过Bean Factory组件加载所有的类然后通 过Application Context增加国际化支持,获取资源,事件传 递等功能。 Spring的架构基础是基于Bean属性的IOC容器, 数据访问集成了Hibernate 和其他O/R Mapping解决方案,同 时提供了对Struts框架的支持,进而可以将三者整合起来。 1.3 何谓Hibernate Hibernate是一个开源的持久化对象/关系映射框架, 采用低侵入式的设计,完全采用普通的JAVA对象(POJO), 对JDBC进行了轻量级的封装,把数据库信息读入领域对象 的一个对象图,这样就可以在连接断开的情况下将这些数 据显示到UI层之上。那些数据也可以被更新和回送到数据 持久层并在数据库里得到更新。Hibernate的目标是成为 JAVA中管理持续性数据问题的一种完整的解决方案,协调 应用与关系数据库的交互,从而使得开发人员更好地去专 注于业务问题。 2 三种框架的整合 三种框架有机地整合才能够更好地发挥它们的优势, 进而实现系统多层开发的低耦合,三种框架整合的基本方 法是通过配置文件来进行设置。作者简介:汪青(1981-),男,安徽庐江籍,硕士,教师,研究方向为管理信息系统、软件工程、数据挖掘、计算机网络。43 中国西部科技2009年4月(上旬)第08卷第10期 总 第171期整个系统的结构设计如图1所示。[2]2.1 Struts与Spring的整合 Struts与Spring的整合可以采用三种方式 : 第一种方式:通过使用DelegatingRequestProcessor方 式,由ActionServlet调用RequestProcessor完成实际的转发。 如 果 想 在 ActionServlet处 将 请 求 转 发 给 ApplicationContext的 Bean, 可 以 通 过 扩 展 RequestProcessor完 成 , 替 换 Struts的 RequestProcessor。为了让Struts使用DelegatingRequestProcsessor,还 需要在配置文件中增加如下代码:<controllerprocesessorClass=” *.DelegatingRequestProcessor”/>。 完成这个设置后,Struts会将拦截到的用户请求转发到 Spring context下的Bean,根据Bean的name属性来匹配。 第二种方式:使用DelegatingActionProxy非常简单方 便,但有一个缺点。RequestProcessor是Struts的一个扩 展点,也许应用程序本身就需要扩展RequestProcessor, 而DelegatingRequestProcessor已经使用了这个扩展点。 与 使 用 DelegatingRequestProcessor对 比 , 使 用 DelegatingActionProxy仅需要去掉controller配置元素,并 将所有的action实现类改为DelegatingActionProxy即可。 第三种方式:使用ActionSupport代替Action。 public class LoginAction extends ActionSupport public ActionForward execute() throws Exception LoginForm loginForm = (LoginForm)form; Return mapping.findForward ("welcome") 。 2.2 Hibernate与Spring的整合 Spring为持久层的开发提供了强有力的支持,其中对于 Hibernate的 支 持 包 括 HibernateTemplate, HibernateIn- terceptor和Hibernate transaction manager。Hibernate的 连接、事务管理等是由会话工厂开始的,会话工厂底层的 数据源可以使用Spring的IOC注入,然后将会话工厂注入到 相应的对象中。 3 三种架构在OA系统中的整合示例 下 面 通 过 OA系 统 中 的 一 个 子 模 块 为 例 来 说 明 STRUTS+SPRING+HIBERNATE整合架构的使用。 3.1 开发环境及总体结构设计简述 系统采用面向对象的设计思想,B/S模式等混合编程方 式。从逻辑架构方面来说,针对系统的复杂度对系统进行 了划分,将系统划分为(表现层,业务逻辑层,持久层,领 域模型层等);从功能方面架构来说,将功能进行划分,并 且对应到相应的逻辑架构中,根据逻辑架构划分进行子系 统的划分,设计与开发。 系统开发环境:JDK1.5,Tomcat5.0,Eclipse+Myeclipse, 数据库Mysql Server 5.0。 3.2 开发过程 3.2.1 OA系统的功能模块设计 OA系统的功能模块主要分为组织机构模块、权限管理 模块、公文流转模块、合同管理模块、仪器设备管理模 块、个人事务模块、信息交流模块、内容管理模块和下载 中心等几个部分。 3.2.2 系统的设计与应用文中主要针对处理业务逻辑和事务管理的服务层的设 计进行描述,其他层的设计可以参考文献[3]。 (1)服务层(Spring框架):首先对每个功能模块构建 相应的管理类来管理和维护其业务逻辑,然后修改 Spring的配置文件,将各个管理类对应的bean进行注册配 置,以达到对其使用AOP模式进行事务控制的目的。可以创 建一个基本事务管理bean,然后通过各个管理类bean对该 bean进行继承的方式来简化配置,实现复用。以对计划类 进行事务管理的配置为例: <bean id="sessionFactory" class="*.LocalSessionFactoryBean"> <property name="configLocation"></property> </bean> <bean id="transactionManager" class="*.HibernateTransactionManager"> <property name="sessionFactory"></property> </bean> <bean id="planManager" class="*.PlanManagerImpl"> </bean> <tx:advice id="txAdvice" transaction- manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> … </tx:attributes> </tx:advice> <!-- 配置哪些类的方法需要进行事务管理 --> <aop:config> <aop:pointcut id="allManagerMethod" expression="execution(* *.managers.*.*(..))"/> <aop: advisor advice-ref="txAdvice" pointcut-44 信 息 技 术ref="allManagerMethod"/> </aop:config> *.PlanManagerImpl就是实现个人计划管理的JavaBean。 通过parent元素声明为其提供事务支持的父bean。此外在计 划类bean中可以覆盖或添加新的事务处理属性以达到个性 化计划管理的目的。 (2)持久层(Hibernate框架):将数据库中的每张表 通过Hibernate工具产生相应的持久层对象,然后通过建立 DAO来使用这些对象。配置如下: <hibernate-configuration> <session-factory> <mapping resource="*/Plan.hbm.xml"/> </session-factory> </hiberate-configuration> 计划类Plan设计如下: public class Plan{ private int id; private User user; … public int getId(){ return id; } public void setId(int id){ this.id = id; } public User getUser(){ return user; } public void setUser(User user){ this.user = user; } … > <forward name="index" path="/plan/index.jsp"></forward> <forward name="add_input"path="/plan/add_input.jsp"></fo rward> </action> <Message-resources parameter="MessageResources"/> </struts-config> 4 结束语 本 文 讨 论 了 J2EE开 发 中 的 轻 量 级 框 架 组 合 SSH(STRUTS+SPRING+HIBERNATE),并对这种组合应用于企业 办公自动化系统开发研究与设计上,三种框架的组合使得 J2EE的开发具有更佳的可维护性与可扩展性,充分体现了三 者的优势与带来的好处,实现了OA系统开发的松耦合,因 此具有很好的应用发展前景。参考文献:(略)} (3)表现层(Struts框架):通过Struts-MVC模式来处 理客户请求和返回结果。 首先通过配置文件struts-config.xml进行Struts配置如下: <struts-config> <form-beans> <form-bean name="planForm" type="*.PlanActionForm"></form-bean> </form-beans> <action path="/plan" type="*.DelegatingActionProxy" name="planForm" scope="request" parameter="method"(上接第46页) 主要步聚为:藏区文化研究人员或研究机构 在信息采集模块中发布藏区资料收集公告,提供信息采集 建议和要求,广大收藏者或兴趣爱好者提供收藏信息,通 过采集平台反馈信息或上传相关图片、音频或视频,经过 相关研究机构的调研和认定,确定收藏物的价值,返回认 定信息。管理者通过系统发布广告,进行模块管理。收藏 者可以通过用户注册,发表贴子、回复信息及上传文件等 操作配合完成信息采集工作。 3 系统安全 安全问题是本系统考虑的首要问题,系统安全包含网隐患,采取修补措施,有效地阻止多种攻击和入侵企图。 ③安装防火墙、杀毒等安全软件工具,进行服务器网络安 全防护。通过过滤技术,对进出信息进行杀毒和及时阻止 入侵,防止病毒和不良信息的传播。④分层管理权限,使 网站工作人员根据不同的优先级设置信息维护权 限。使用 SQL存储过程对数据库结构进行封装,只有一定权限的用户 才能执行存储过程,从而使别的用户不能直接访问数据库 的内容,同时对重要的资料进行加密处理,可以提高数据 库的安全。 4 结束语 本文提出了基于ASP的藏区文化交流与信息采集系统设 计方案。结合现代信息技术改变了传统的藏区文化交流与 信息采集模式,体现了时代特征,能扩大藏区文化交流的 范围,提高藏区资料的采集效率,很好地促进该领域工作 的全面展开。参考文献:(略)络系统的硬件、软件及其系统的数据安全,面临的主要威 胁有软件的自身安全、用户的不安全因素、病毒的破坏和 侵入等等。为此本系统从以下几个方面进行设计:①做好 数据备份和资料的存档工作。采用动态双备份系统,防止 网页篡改系统,自动恢复被篡改的网页,保证网站主页、 重要页面的安全。②服务器装有漏洞检测和入侵检测系 统,使用漏洞扫描软件扫描系统漏洞,及时发现系统安全45
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 巡视利剑第二集简述 的文章

 

随机推荐