Java之基于Eclipse搭建SSH框架(下)

在上篇博客里,我简单介绍了Tomcat滴配置与Struts2滴搭建,如果对这个还不会滴童鞋去看一下我滴上篇博客《Java之基于Eclipse搭建SSH框架(上)》。今天我们接着上篇博客滴内容,继续搭建我们滴SSH框架。
(一)在上篇博客滴基础上整合Spring:
首先我们把Spring所需要的jar(上篇博客有),复制到WebContent下的WEB-INF下的lib里面。其次在src下创建名为:applicationContext.xml文件。(有些人提示在WEB-INF下创建)个人建议在src下创建
Spring配置文件有两种格式:DTD格式;Schema格式。
基于DTD格式的配置文件格式如下:


    
    <beans>
        
        <bean id="loginService" class="com.hy.service.impl.LoginServiceImpl" />
    beans>  

Schema格式的配置文件拥有自己的命名空间,格式如下:


    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
                                  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
                                  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd  
                                  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
        
        <bean id="loginService" class="com.hy.service.impl.LoginServiceImpl" />
    beans>

这里我用的是第二种配置方式。applicationContext.xml内容为:


    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
               http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
        
        <bean id="loginService" class="com.hy.service.impl.LoginServiceImpl" />
        
        <bean id="loginServer" class="com.hy.action.LoginAction" scope="prototype">
            <property name="loginService" ref="loginService">property>
        bean>
    beans>  

在struts里面这样配置就可以了:

    <package name="struts2" extends="struts-default">
        
        <action name="Login" class="loginServer">
            <result name="success">/result.jspresult>
            <result name="input">/login.jspresult>
        action>
    package>

这里要注意的是在struts.xml文件里面的action配置中,class=”“与我们上篇博客讲的Struts搭建不一样了。这里的class内容与applicationContext.xml里面的Action配置bean的id是相同的!!!
其次在web.xml我们需要在添加下面这些代码:

    
    <context-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>/WEB-INF/applicationContext*.xml,classpath*:applicationContext*.xmlparam-value>
    context-param>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    listener>

这样集成Spring所要配置的文件算是结束了,还有一点要强调整合Struts与Spring需要一个jar(struts2-spring-plugin-2.3.8.jar),这个jar我放到了struts2所需jar里面了,添加了这个jar才算把Struts与Spring整合在一起了。
在集成Hibernate前,说一下关于Spring XML文件上下文配置问题。applicationContext.xml其实这个文件可以保存到classpath或者WEB-INF文件下。随着项目增大,Spring的配置文件也会变得庞大,可以根据已定的原则分为几个配置文件,从而使配置更加清晰,提高可维护性。上面代码中的写法是查找classpath和WEB-INF文件下所有的配置文件(好多人都说了其中一种,如果写的查找和文件保存位置不一样,就会报错哦~)。
测试一下,整合情况,效果图如下:
Java之基于Eclipse搭建SSH框架(下)_第1张图片
莫急哈~~demo我会在下面给大家,请大家看清里面的网址,因为这个demo里面也包括最后SSH的搭建测试。
(二)集成Hibernate
首先还是把Hibernate所需要的jar(上篇博客有),复制到WebContent下的WEB-INF下的lib里面。然后在applicationContext.xml中添加下面的配置:

    
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        
        <property name="url" value="jdbc:mysql://localhost:3306/test" />
        
        <property name="username" value="root" />
        
        <property name="password" value="" />
    bean>
    
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                prop>
                <prop key="hibernate.hbm2ddl.auto">updateprop>
                <prop key="hibernate.connection.autocommit">true prop>
                <prop key="hibernate.show_sql">trueprop>
                <prop key="sql_format">trueprop>
            props>
        property>
        <property name="mappingResources">
            
            <list>
                <value>com/hy/entity/User.hbm.xmlvalue>
            list>
        property>
    bean>

到这里框架就算搭建完毕了。有人会有疑惑,不是要创建hibernate.cfg.xml或者hibernate.properties配置嘛,其实在上面的配置文件中,你是不是发现有一个bean中的文件特别像这两个文件中的内容嘛,其实这样就可以了,不用再创建那两个文件了。
在此说明一下如果你的数据库是MySQL配置按照上面那种方式配置,别忘了添加对应的jar(有人告诉我:jar包也要与自己的数据版本对应,否则连不上)。如果你的数据库是Oracle,配置按照下面图中进行配置。

最后在说一下Hibernate映射文件(类与表之间的关系映射)

<hibernate-mapping>
    <class name="类名" table="表名">
        
        <id name="主键名">
            <column name="主键列" />
            
            <generator class="生成策略" />
        id>
        <property name="属性名" type="数据类型">
            <column name="列名" length="长度" not-null="是否不为空" />
        property>
    class>
hibernate-mapping> 

测试一下,效果图:

Java之基于Eclipse搭建SSH框架(下)_第2张图片

Java之基于Eclipse搭建SSH框架(下)_第3张图片

Java之基于Eclipse搭建SSH框架(下)_第4张图片

搭建SSH到这里就结束啦,如有疑问,请给我留言~~
近期有小伙伴反映,看了偶滴博客然后跟着做还是报错,总结了他们的错误这里我简单说明一下:
1.如果亲还没有配置Spring,就不要把(struts2-spring-plugin-2.3.8.jar),这个jar包提前导入到项目里(这是我滴错,把这个jar包放到struts所需的包包里面了),如果按我的博客验证struts时出错,那就把这个包删除即可。(整合Spring别忘了导入哦~)
2.就是配置问题:(上图,有图有真相~)
Java之基于Eclipse搭建SSH框架(下)_第5张图片

Java之基于Eclipse搭建SSH框架(下)_第6张图片

Java之基于Eclipse搭建SSH框架(下)_第7张图片

Java之基于Eclipse搭建SSH框架(下)_第8张图片

Java之基于Eclipse搭建SSH框架(下)_第9张图片
配置文件和代码里面的名字要对应,不然就出错哦~
3.就是我们的框架用到Hibernate,童鞋们都知道写映射表,但是别忘了配置文件中指定。
Java之基于Eclipse搭建SSH框架(下)_第10张图片

最后附上:
demo地址

你可能感兴趣的:(Java开发)