SSH2三大框架的集成开发环境搭建

学过Java的童鞋都知道,Java中各式各样的框架多如牛毛,Web前端的框架也是数不胜数。在这里,我们要弄清楚一点,我们为什么要学习框架?(多就多呗,关我啥事儿?)

荀子曰:“君子性非异也,善假于物也”。框架不是成型的产品,而是给开发人员用的二次开发包。框架能够帮助我们简化开发步骤,减少工作量,辅助开发人员更加有效的进行开发。各式各样的开源框架的产生其实得益于Java的开源,是Java的开源,使得各种各样的Java框架迅速发展。。(有点跑。。)所以说,善于利用工具,善于利用框架辅助我们进行开发,也是一种非常重要的能力。

但是,如果想将这些框架都学完的话,那还不如直接去自杀更痛快一些,太痛苦了。所以,在学习框架的过程中,有一个正确的态度对待框架是非常重要的。

在过去的年代,学五车竹简书就已经很有才华了(学富五车),但是现如今信息爆炸的时代,上了二十多年的大学生仍然找不到工作。

所以,你别指望着把知识学完,要在学习框架的过程中,对一些经典的框架、典型框架进行深入剖析,以后工作中用到的框架也比较固定,即便是你没学过的,但是你学过类似的框架,类比着学,掌握学习的方法,就能轻松做到触类旁通。


在前面的文章中,分别介绍了struts、Hibernate、spring中的一些概念。今天,我们就来对SSH2框架进行集成。下面看开发环境搭建:

引入的jar包介绍:

(其实,为了深究这三个框架,大家应该明白每个jar包的主要功能是什么,因为不怕你不知道某个jar包怎么用,就怕你不知道这个框架有这个功能 。看完后你很可能记不住,但是你肯定有看过那一遍的印象。这里,我就只将应到的包的功能查了出来,并放在了这里,其他的大家自己下去查。)

struts2

jar包

主要内容

commons-fileupload-1.3.jar

文件上传

commons-io-2.0.1.jar

commons项目(commons项目就是java中一些常用的公共的组件)的io子项目,是处理异常的

commons-lang3-3.1.jar

commons中的lang包

freemarker-2.3.19.jar

支持freemaker的,在webwork中也有。struts2的UI标签的模板使用FreeMarker编写

javassist-3.11.0.GA.jar

一个开源的分析、编辑和创建java字节码的类库(Hibernate中也需要,引入一个即可)

ognl-3.0.6.jar

Object-Graph Navigation Language表达式,对象图导航语言。struts2通过其读写对象的属性

struts2-core-2.3.15.1.jar

核心包

struts2-spring-plugin-2.3.15.1.jar

Struts与Spring集成时使用的,引入该jar包后需要在struts.xml中指定struts的ObjectFactory(可以使struts也可以使Spring),不然程序报错

xwork-core-2.3.15.1.jar

WebWork和Struts2所依赖的核心包



Spring:

jar包

主要内容

lib/aspectj/ aspectjrt.jar

支持AOP的包

lib/aspectj/ aspectjweaver.jar

处理事务和aop所需包

lib/jakarta-commons/commons-logging.jar

ASF出品的日志包,三个框架使用这个日志包来支持log4J和JDK的日志记录

lib/jakarta-commons/commons-pool.jar

支持BasicDataSource来配置数据库连接

lib/jakarta-commons/commons-dbcp.jar

支持BasicDataSource来配置数据库连接

dist/spring.jar

Spring核心包

lib/cglib/cglib-nodep-2.1_3.jar

支持cglib动态代理的包

common-annotations.jar

注解包

   

Hibernate:

jar包

主要内容

lib/ required/ antlr-2.7.6.jar

语言转换工具,Hibernate利用它实现HQL到SQL的转换

lib/ required/commons-collections-3.1.jar

包含了一些Apache开发的集合类。commons项目中的子项目,是对collection集合的封装

lib/ required/dom4j-1.6.1.jar

读写xml文件

hibernate3.jar

核心包

lib/jpa/ hibernate-jpa-2.0-api-1.0.0.Final.jar

对JPA规范的支持

lib/bytecode/ javassist/javassist-3.12.0.GA.jar

一个开源的分析、编辑和创建Java字节码的类库

lib/ required/jta-1.1.jar

标准的java中事务处理接口


web.xml文件

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee"  
  4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  5.     id="WebApp_ID" version="2.5">  
  6.     <display-name>SSH2</display-name>  
  7.     <context-param>  
  8.         <param-name>contextConfigLocation</param-name>  
  9.         <!-- 如果将该xml文件放在WEB-INF下面的话,就需要下面配置 <param-value>WEB-INF/applicationContext.xml</param-value> -->  
  10.         <!-- 下面是默认配置 -->  
  11.         <param-value>classpath:com/lzq/config/applicationContext-*.xml</param-value>  
  12.     </context-param>  
  13.   
  14.     <!-- 配置spring -->    
  15.     <listener>  
  16.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  17.     </listener>  
  18.           
  19.     <!-- Struts2配置 -->  
  20.     <filter>  
  21.         <filter-name>struts2</filter-name>  
  22.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  23.         <init-param>  
  24.             <param-name>config</param-name>  
  25.             <param-value>struts-default.xml,struts-plugin.xml,com/lzq/config/struts.xml</param-value>  
  26.         </init-param>  
  27.     </filter>  
  28.     <filter-mapping>  
  29.         <filter-name>struts2</filter-name>  
  30.         <url-pattern>/*</url-pattern>  
  31.     </filter-mapping>  
  32. </web-app>  

Spring的配置文件:applicationContext-*.xml文件

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
  4.     xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  6.         http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
  7.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  8.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
  9.   
  10.     <!-- 启用spring注解支持 -->  
  11.     <context:annotation-config />  
  12.     <!-- 第一种配置sessionFactory的方法:这种方法,需要Hibernate的hibernate.cfg.xml文件   
  13.          <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">   
  14.         <property name="configLocation"> <value>classpath:config/hibernate.cfg.xml</value>   
  15.         </property> 如果采用注解的方式注册实体类,则可以采用如下方法来简化注册步骤,并且class为AnnotationSessionFactoryBean   
  16.         <property name="packagesToScan"> <list> <value>com.lzq.config</value> </list>   
  17.         </property> </bean> -->  
  18.   
  19.     <!-- 第二种配置sessionFactory的方法:使用BasicDataSource配置数据库连接 -->  
  20.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
  21.         destroy-method="close">  
  22.         <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>  
  23.         <property name="url" value="jdbc:mysql://localhost:3306/SSH2"></property>  
  24.         <property name="username" value="root"></property>  
  25.         <property name="password" value="root"></property>  
  26.     </bean>  
  27.     <bean id="sessionFactory"  
  28.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
  29.         <property name="dataSource" ref="dataSource"></property>  
  30.         <!-- 设置Hibernate属性 -->  
  31.         <property name="hibernateProperties">  
  32.             <props>  
  33.                 <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
  34.                 <prop key="hibernate.hbm2ddl.auto">update</prop>  
  35.             </props>  
  36.         </property>  
  37.         <!--如果采用传统的hbm.xml的方式,可以采用如下方式来简化注册hbm.xml的步骤, 并且class为LocalSessionFactoryBean  -->  
  38.         <property name="mappingLocations">  
  39.             <list>  
  40.                 <value>classpath:/com/lzq/entity/*.hbm.xml</value>  
  41.             </list>  
  42.         </property>  
  43.     </bean>  
  44.     <!-- 事务管理 -->  
  45.     <bean id="transactionManager"  
  46.         class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
  47.         <property name="sessionFactory" ref="sessionFactory"></property>  
  48.     </bean>  
  49.   
  50.     <!--配置事务 事务细节 :事务的传播特性 -->  
  51.     <tx:advice id="txadvice" transaction-manager="transactionManager">   
  52.         <tx:attributes>   
  53.             <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception"/>   
  54.             <tx:method name="modify*" propagation="REQUIRED" no-rollback-for="myException"/>   
  55.             <tx:method name="del*" propagation="REQUIRED"/>   
  56.             <tx:method name="*" read-only="true"/>   
  57.         </tx:attributes>   
  58.     </tx:advice>   
  59.     <!-- 配置参与事务的类  -->  
  60.     <aop:config>   
  61.         <aop:pointcut expression="execution(* com.lzq.dao.*.*(..))" id="daoMethod"/>   
  62.         <aop:advisor advice-ref="txadvice" pointcut-ref="daoMethod"/>   
  63.     </aop:config>   
  64. </beans>  

struts2的配置文件——struts.xml文件

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  5.   
  6. <struts>  
  7.   
  8.     <!-- 访问时,不需要加.action,无须任何后缀名 -->  
  9.     <constant name="struts.action.extension" value=","></constant>  
  10.       
  11.     <!-- 引入上传的配置文件 -->  
  12.     <include file="com/lzq/config/struts-upload.xml"></include>  
  13.       
  14.     <!-- 告诉struts2,action的创建交给spring -->  
  15.     <constant name="struts.ObjectFactory" value="spring"></constant>  
  16.       
  17.     <!-- package:用来统一管理action -->  
  18.     <package name="loginAction" namespace="/user" extends="struts-default">  
  19.         <action name="login" class="loginAction">  
  20.             <result name="success" type="redirect">../user.jsp</result>  
  21.             <result name="error" type="redirect">/error.jsp</result>  
  22.         </action>  
  23.     </package>  
  24.   
  25.     <package name="userManager" namespace="/user" extends="struts-default">  
  26.         <!-- 拦截连 -->  
  27.         <interceptors>  
  28.             <interceptor name="myInterceptor" class="myInterceptor4" />  
  29.             <interceptor-stack name="defaultInterceptorStack">  
  30.                 <interceptor-ref name="myInterceptor"></interceptor-ref>  
  31.                 <!-- 拦截器 配置问手写的拦截器,还要配置struts2的拦截器,不然后冲掉手写的拦截器 -->  
  32.                 <interceptor-ref name="defaultStack"></interceptor-ref>  
  33.             </interceptor-stack>  
  34.         </interceptors>  
  35.         <action name="*User_*" class="userManagerAction" method="{1}User">  
  36.             <!-- 默认是转发 -->  
  37.             <result name="success" type="redirect">/success.jsp</result>  
  38.             <!-- 重定向 -->  
  39.             <result name="error" type="redirect">/error.jsp</result>  
  40.             <result name="checkError">/checkError.jsp</result>  
  41.             <!-- 拦截连 -->  
  42.             <interceptor-ref name="defaultInterceptorStack"></interceptor-ref>  
  43.         </action>  
  44.     </package>  
  45. </struts>  


像上面这样,就基本配置了SSH2的开发环境,具体的细节的东东就不往上粘了,提供实例下载(SSH2实例下载),想仔细学习的童鞋可以去下载实例慢慢研究,想了解大概思路的童鞋看本文内容就足够了。

SSH2三个框架中需要学习的内容还是很多的,这里只是介绍了基础中的基础,只搭建了开发环境,本篇博客也只算是学习SSH2的一个开始。希望和大家共同探讨,共同学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值