简单搭建ssh框架(xml配置)

过两天就要找工作了,希望能找个好工作,啥叫好工作?就是妹子多点的哈哈

这篇是纯xml配置ssh,过阵子我再做纯注释的。。。

开始

首先要导入所需要的jar包,这不多说了

配置spring3

sping 官方文档里明确告诉一个applicationContext.xml的文件是这个样子滴:

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">

  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>

  <bean id="..." class="...">
    <!-- collaborators and configuration for this bean go here -->
  </bean>

  <!-- more bean definitions go here -->

</beans>

接下来编写我们自己的applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">

    <bean id="empDao" class="com.bjsxt.dao.EmpDaoImpl" scope="prototype">

    </bean>
    <bean id="empService" class="com.bjsxt.service.EmpServiceImpl" scope="prototype">
        <property name="empDao" ref="empDao"></property>
    </bean>
    <bean id="empAction" class="com.bjsxt.action.EmpAction" scope="prototype">
        <property name="empService" ref="empService"></property>
    </bean>

  <!-- more bean definitions go here -->

</beans>

别忘了在web.xml里加上

<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:ApplictionContext.xml</param-value>
</context-param>
<listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
 </listener>

至此,spring的简单配置已经完成,接下来配置struts2

在web.xml里添加过滤器

<filter>
   <filter-name>struts2</filter-name>
   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

配置Struts2.xml

官方的文档里明确告诉我们一个Struts2.xml应该是这个样子的:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
  
    <package name="default" namespace="/" extends="struts-default">

        <default-action-ref name="index" />

        <global-results>
            <result name="error">/error.jsp</result>
        </global-results>

        <global-exception-mappings>
            <exception-mapping exception="java.lang.Exception" result="error"/>
        </global-exception-mappings>

        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package>

    <include file="example.xml"/>

    <!-- Add packages here -->

</struts>

我们来配置我们自己的Struts2.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 这句非常重要,把控制权交给Spring -->
    <constant name="struts.objectFactory" value="spring" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <package name="default" namespace="/" extends="struts-default">
        <!-- 因为控制权交给Spring了,所以我们不用自己再写类路径了,直接跟Spring要就行了,名字是在applicationContext.xml里配置的bean名字 -->
        <action name="UserAction" class="empAction" method="fandAll">
            <result name="success">/index.html</result>
        </action>
    </package>

    <!-- <include file="example.xml" /> -->

    <!-- Add packages here -->

</struts>

至此Struts2配置完毕

接下来配置hibernate3

首先要配置数据源,我用dbcp

在applicationContext.xml里添加以下内容

    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
        <property name="username" value="scott"></property>
        <property name="password" value="tiger"></property>
    </bean>
    <!-- 配置sessionFactory -->
     <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource" ref="dataSource"></property>
        <!-- hibernate的设置 -->
        <property name="hibernateProperties">
            <props>
                <prop key="dialect">org.hibernate.dialect.OracleDialect</prop>
                <prop key="show_sql">true</prop>
            </props>
        </property>
        <!-- 映射文件 -->
        <property name="mappingResources">
            <list>
                <value>com/bjsxt/entity/Emp.hbm.xml</value>
            </list>
        </property>
    </bean>
<!-- 配置事务 -->
<bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 配置事务范围 -->
     <tx:advice id="txManager" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="set*" propagation="REQUIRED" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="updata*" propagation="REQUIRED" />
            <tx:method name="*"  propagation="REQUIRED"  read-only="true" />
        </tx:attributes>

    </tx:advice> 

    <!-- 配置参与事务的类 -->
 <aop:config proxy-target-class="true">
        <aop:pointcut id="aopMananger" expression="execution(* com.bjsxt.service.*Impl.*(..))" />
        <aop:advisor advice-ref="txManager" pointcut-ref="aopMananger" />
    </aop:config>

</beans>
BasicDataSource不一定是我的那个路径,我的好像比别人多了个dbcp,具体的请ctrl+shift+h 输入BasicDataSource,找到你项目中的这个类,右键复制路径

还要引入tx和aop标签

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/tx
             http://www.springframework.org/schema/tx/spring-tx.xsd
              http://www.springframework.org/schema/aop
             http://www.springframework.org/schema/aop/spring-aop.xsd">

到这步就整合完毕了,下面给出完整的文档:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>sshexml1</display-name>

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:ApplictionContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/tx
             http://www.springframework.org/schema/tx/spring-tx.xsd
              http://www.springframework.org/schema/aop
             http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!-- 配置数据源 -->
    <bean id="dataSource" class="org.apache.tomcat.dbcp.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
        <property name="username" value="scott"></property>
        <property name="password" value="tiger"></property>
    </bean>
    <!-- 配置sessionFactory -->
     <bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <property name="dataSource" ref="dataSource"></property>
        <!-- hibernate的设置 -->
        <property name="hibernateProperties">
            <props>
                <prop key="dialect">org.hibernate.dialect.OracleDialect</prop>
                <prop key="show_sql">true</prop>
            </props>
        </property>
        <!-- 映射文件 -->
        <property name="mappingResources">
            <list>
                <value>com/bjsxt/entity/Emp.hbm.xml</value>
            </list>
        </property>
    </bean>
<!-- 配置事务 -->
<bean id="transactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 配置事务范围 -->
     <tx:advice id="txManager" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="set*" propagation="REQUIRED" />
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="updata*" propagation="REQUIRED" />
            <tx:method name="*"  propagation="REQUIRED"  read-only="true" />
        </tx:attributes>

    </tx:advice>
    <bean id="empDao" class="com.bjsxt.dao.EmpDaoImpl" scope="prototype">
         <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <bean id="empService" class="com.bjsxt.service.EmpServiceImpl"
        scope="prototype">
        <property name="empDao" ref="empDao"></property>
    </bean>
    <bean id="empAction" class="com.bjsxt.action.EmpAction" scope="prototype">
        <property name="empService" ref="empService"></property>
    </bean>
    <!-- 配置参与事务的类 -->
 <aop:config proxy-target-class="true">
        <aop:pointcut id="aopMananger" expression="execution(* com.bjsxt.service.*Impl.*(..))" />
        <aop:advisor advice-ref="txManager" pointcut-ref="aopMananger" />
    </aop:config>

</beans>

Struts2.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 这句非常重要,把控制权交给Spring -->
    <constant name="struts.objectFactory" value="spring" />
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="true" />
    <package name="default" namespace="/" extends="struts-default">
        <!-- 因为控制器交给Spring了,所以我们不用自己再写类路径了,直接跟Spring要就行了,名字是在applicationContext.xml里配置的bean名字 -->
        <action name="UserAction" class="empAction" method="fandAll">
            <result name="success">/index.html</result>
        </action>
    </package>

    <!-- <include file="example.xml" /> -->

    <!-- Add packages here -->

</struts>

EmpAction:

package com.bjsxt.action;

import java.util.List;

import com.bjsxt.service.EmpServiceImpl;

public class EmpAction<T> {

    private Integer page;
    private Integer rows;
    private EmpServiceImpl<T> empService;
    public Integer getPage() {
        return page;
    }

    public void setPage(Integer page) {
        this.page = page;
    }

    public Integer getRows() {
        return rows;
    }

    public void setRows(Integer rows) {
        this.rows = rows;
    }
    public List<Object> fandAll(){
         List<Object> l = (List<Object>) empService.fandAll();
         return l;
    }

    public EmpServiceImpl<T> getEmpService() {
        return empService;
    }

    public void setEmpService(EmpServiceImpl<T> empService) {
        this.empService = empService;
    }

}

EmpServiceImpl:

package com.bjsxt.service;

import java.util.List;

import com.bjsxt.dao.EmpDaoImpl;

public class EmpServiceImpl<T> implements EmpServiceI<T> {
    private EmpDaoImpl<T> empDao;

    public EmpDaoImpl<T> getEmpDao() {
        return empDao;
    }

    public void setEmpDao(EmpDaoImpl<T> empDao) {
        this.empDao = empDao;
    }

    public List<T> fandAll() {
        empDao.fandAll();
        return null;
    }

}

EmpDaoImpl:

package com.bjsxt.dao;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.SessionFactory;

public class EmpDaoImpl<T> implements EmpDaoI<T> {
    private SessionFactory sessionFactory;

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    @SuppressWarnings("unchecked")
    @Override
    public List<T> fandAll() {
        System.out.println("testss");
        Query q = sessionFactory.getCurrentSession().createQuery("from Emp e");
        System.out.println(q);
        for(int i=0;i<q.list().size();i++){
            System.out.println(q.list().get(i));
        }
        return q.list();
    }

}

Emp.java

package com.bjsxt.entity;

import java.util.Date;

public class Emp {
    private Integer empno;
    private String ename;
    private String job;
    private Integer mgr;
    private Date hiredate;
    private Integer sal;
    private Integer comm;
    private Integer deptno;

    public Integer getEmpno() {
        return empno;
    }

    public void setEmpno(Integer empno) {
        this.empno = empno;
    }

    public String getEname() {
        return ename;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public String getJob() {
        return job;
    }

    public void setJob(String job) {
        this.job = job;
    }

    public Integer getMgr() {
        return mgr;
    }

    public void setMgr(Integer mgr) {
        this.mgr = mgr;
    }

    public Date getHiredate() {
        return hiredate;
    }

    public void setHiredate(Date hiredate) {
        this.hiredate = hiredate;
    }

    public Integer getSal() {
        return sal;
    }

    public void setSal(Integer sal) {
        this.sal = sal;
    }

    public Integer getComm() {
        return comm;
    }

    public void setComm(Integer comm) {
        this.comm = comm;
    }

    public Integer getDeptno() {
        return deptno;
    }

    public void setDeptno(Integer deptno) {
        this.deptno = deptno;
    }
}

简单的映射文件Emp.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.bjsxt.entity">
    <class name="Emp" table="EMP">
        <id name="empno" column="EMPNO"></id>
    </class>

</hibernate-mapping>

至此已经完成,我还没用工作,如果哪里有问题请告诉我,谢谢

时间: 2024-10-29 03:43:59

简单搭建ssh框架(xml配置)的相关文章

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

在上篇博客里,我简介了Tomcat滴配置与Struts2滴搭建,假设对这个还不会滴童鞋去看一下我滴上篇博客<Java之基于Eclipse搭建SSH框架(上)>.今天我们接着上篇博客滴内容.继续搭建我们滴SSH框架. (一)在上篇博客滴基础上整合Spring: 首先我们把Spring所须要的jar(上篇博客有),拷贝到WebContent下的WEB-INF下的lib里面. 其次在src下创建名为:applicationContext.xml文件.(有些人提示在WEB-INF下创建)个人建议:在s

[JavaEE] SSH框架笔记_eclipse搭建SSH框架详解

SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作. 下载好eclipse,Struts2,Spring,Hibernate. 1.eclipse:eclipse下载的时候建议下载JavaEE版的eclipse. 当然你也可以下载eclipse-SDK.(下载eclipse-SDK需要下载Web,Tomcat等plugins) 2.Struts2:http://struts.apache.org/downloa

eclipse Indigo搭建SSH框架详解

SSH框架是最常用的框架之一,在搭建SSH框架的时候总有人遇到这样,那样的问题.下面我介绍一下SSH框架搭建的全过程. 第一步:准备工作.   下载好eclipse,Struts2,Spring,Hibernate.   1.eclipse:eclipse下载的时候建议下载JavaEE版的eclipse.                 当然你也可以下载eclipse-SDK.(下载eclipse-SDK需要下载Web,Tomcat等plugins)   2.Struts2:http://str

用户登录注册之搭建ssh框架

用户登录注册之搭建ssh框架 第一步 导入jar包 第二步 搭建struts2环境 (1)创建action(继承actionnsuport),创建struts.xml配置文件,配置action public class UserAction extends ActionSupport{} <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache So

用MyEclipse搭建SSH框架(Struts2 Spring Hibernate)

1.new一个web project. 2.右键项目,为项目添加Struts支持. 点击Finish.src目录下多了struts.xml配置文件. 3.使用MyEclipse DataBase Explorer建立数据源. new一个数据源.填入数据源信息. 点击test Driver,如果成功显示: 点击OK,点击Finish. 4.为项目添加Spring支持. 选择五个包,之后JAR Library Installation为如下图. 点击Next. 默认点击Finish. 5.为项目添加

更加优雅地搭建SSH框架(使用java配置)

时代在不断进步,大量基于xml的配置所带来的弊端也显而易见,在XML配置和直接注解式配置之外还有一种有趣的选择方式-JavaConfig,它是在Spring 3.0开始从一个独立的项目并入到Spring中的.它结合了XML的解耦和JAVA编译时检查的优点.JavaConfig可以看成一个XML文件,只不过是使用Java编写的.现在下面为大家展示如何编写基于java Config 配置 spring+springmvc+hibernate. 项目是在intellj IDE 下创建的maven项目,

SSH 框架整合配置

对于Struts.spring.hibernate大体上去过一遍之后,就是针对这个几个框架的整合了.对ssh框架异常熟悉.能够在1个小时搞定这些无聊的配置的程序猿,请飘过. 整合的环境 hibernate-distribution-3.6.0.Final-dist spring-framework-2.5.6.SEC01-with-dependencies struts-2.1.8.1-all 环境这里没有我们值得去考究的,终归是一些工具的使用下载.另外需要说一下的是,很多时候在选择这些框架的时

MeEclipse搭建SSH框架之———大体框架

必备:MyEclipse软件,SSH需要的jar包,数据库,连接数据库的驱动jar包 先搭建大体框架,再加别的东西,要不都不知道哪里错了 一.新建web项目 MyEclipse左边右键--->New--->Web Project---->输入项目名--->选择Java EE 版本(建议不低于5.0)--->Finish 二.导入项目需要的jar包到WEB-INF下的lib包(web项目不用build path) 三.给项目添加struts2支持 1.点击项目名右键--->

myeclipse 搭建ssh框架

1.本人使用myeclipse2014版本,其他的8.5以上版本大体相同略有差异 2.myeclipse使用安装的jdk1.7,tomcat6.在搭建框架之前确保myeclipse能正常使用 3.本人略懒,几乎全部使用myeclipse自带的功能,各种文件自动生成.想当初手动写持久层方法,一天只能写一个多,累倒人不说,老板天天喊效率太低,实在无奈,只好借助工具进行实现,虽然屏蔽了技术细节和原理不是我的本意,但能够一会就完成好长时间的工作,还是感觉成就感满满的. 下面进入具体实现部分: 首先明确下