SSH SSM 및 대비 유사점과 차이점, 자신의 강점

1SSH와 SSM 정의
SSH 일반적 Struts2 층 지속성 컨트롤러 (동작), 관리 스프링, 하이버 네이트의 성분 층을 수행하는 책임을 말한다.

SSM은 SpringMVC 제어를 수행하기위한 수단 (제어 장치), 지속성 층 관리 책임 봄의 MyBatis의 성분 층이다.

공통 :

    1.Spring 의존성 주입 DI 각 층의 구성 요소를 관리.

    Aspect 지향적 인 프로그래밍 AOP를 사용하여 2. 것들, 로그 및 기타 권한을 관리 할 수 ​​있습니다.

차이 :

    1.Struts2과 상호 작용 모델과 뷰의 다른 메커니즘을 제어 SpringMVC 제어기 (컨트롤러)

    2.Struts2는 Action 클래스 수준이며, SpringMVC은 메소드 레벨, 쉽고 편안하고 스타일을 구현하는 것입니다.

원리 2SSH와 SSM


Struts2 구현 원리 :


Struts2 프레임 워크 단계 (Struts2 필터 삽입을 사용) :

1 클라이언트 동수 (Tomcat과 같은) 포인팅 서블릿 컨테이너 요청

2,이 필터는 만약 ActionContextCleanUp 옵션 필터를 불렀다 필터 (필터)의 시리즈를 통해 요청 (이 필터는 통합 다른 프레임 워크 Struts2에 유용

3, 다음으로 FilterDispatcher가 호출, FilterDispatcher는이 요청 ActionMapper 필요가 액션을 호출할지 여부를 결정하도록 요청

당신이는 ActionProxy에 대한 요청을 처리하는 액션, FilterDispatcher는 전화를해야하는 경우 4, ActionMapper 결정

5, 구성 파일 구성 관리자 조회 프레임을 통해는 ActionProxy는 Action 클래스를 호출 할 필요를 찾을 수

도 6은는 ActionProxy는 ActionInvocation의 인스턴스를 생성한다.

7, 전화, 동작 프로 시저 호출 이전 또는 이후에, 관련 인터셉터를 포함하는 통화 (인터셉터가) 것을 이름 지정 방식에 ActionInvocation 인스턴스입니다.

8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。

9、将处理结果返回给客户端

SpringMVC 的实现原理:


SpringMVC框架执行步骤(SpringMVC使用Servlet嵌入):

1、客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web.xml中指定),web容器将请求转交给DispatcherServlet.

2、DipatcherServlet接收到这个请求之后将根据请求的信息(包括URL、Http方法、请求报文头和请求参数Cookie等)以及HandlerMapping的配置找到处理请求的处理器(Handler)。

3-4、DispatcherServlet根据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的处理进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。

5、Handler对数据处理完成以后将返回一个ModelAndView()对象给DispatcherServlet。

6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。

7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出完整的view并返回给客户端。

3Hibernater和Mybatis对比


两者的相同点

Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。

Hibernate和MyBatis都支持JDBC和JTA事务处理。

两者各自优势

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。

MyBatis容易掌握,而Hibernate门槛较高。

Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。

Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。

Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存。

Hibernate 封装性好,屏蔽了数据库差异,自动生成SQL语句,应对数据库变化能力较弱,SQL语句优化困难。

MyBatis仅实现了SQL语句和对象的映射,需要针对具体的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化较为方便。

4总结
SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)。SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;而SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

附Spring家族:

추천

출처www.cnblogs.com/hmit/p/11867941.html