SSH三大框架的整合

环境

开发环境:JDK1.8 Window10

使用工具:Idea

这里我使用了maven管理,项目结构是这个样子。

Jar的引用(pom.xml)
  <!--版本统一-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>3.1.1.RELEASE</spring.version>
        <hibernate.version>3.6.5.Final</hibernate.version>
        <struts2.version>2.3.1</struts2.version>
        <mysql.version>5.0.5</mysql.version>
    </properties>

    <dependencies>
        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib-nodep</artifactId>
                <version>2.1_3</version>
            </dependency>
            <!-- hibernate -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <!-- struts2 -->
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-core</artifactId>
                <version>${struts2.version}</version>
            </dependency>
            <!--config-browser-plugin 方便的浏览项目action与jsp view的映射 -->
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-junit-plugin</artifactId>
                <version>${struts2.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.struts</groupId>
                <artifactId>struts2-spring-plugin</artifactId>
                <version>${struts2.version}</version>
            </dependency>
            <!-- 添加对数据库的支持 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <!-- 添加对数据源的支持 -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
Spring配置文件(applicationContext.xml)
<!-- 开启包扫描,并注册注解 -->
    <context:component-scan base-package="com.yaa.*"/>

    <!--引入属性文件-->
    <context:property-placeholder file-encoding="utf-8" location="classpath:config/jdbc.properties"/>

    <!--设置数据源-->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="driverClassName" value="${jdbc.classDriver}"/>
    </bean>


    <!--sessionFactory-->
    <!-- hibernate 管理-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
        <!-- 引用上面设置的数据源 -->
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>

        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.autoReconnect">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <!-- 解决session关闭问题 -->
                <prop key="hibernate.enable_lazy_load_no_trans">true</prop>
                <prop key="current_session_context_class">thread</prop>
                <prop key="hibernate.connection.url">jdbc:mysql://localhost:3306/ssh</prop>
                <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
            </props>
        </property>
        <!-- 包扫描的方式加载注解类 -->
        <property name="packagesToScan">
            <list>
                <value>com.yaa.model</value>
            </list>
        </property>
    </bean>

    <!-- 用注解来实现事物管理 -->
    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
Struts配置文件(struts.xml)
    <constant name="struts.devMode" value="false"/>
    <constant name="struts.objectFactory" value="spring" />
    <package name="user" namespace="/" extends="struts-default">
        <action name="user_save" class="userAction" method="saveUser">
            <result name="success">/index.jsp</result>
        </action>
    </package>
web.xml配置
<!-- struts2容器控制器 -->
    <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>
    <!-- spring容器配置 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:spring/applicationContext.xml</param-value>
    </context-param>

    <!-- spring容器监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener>
    <!-- 欢迎页面 -->
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
逻辑类

1、dao层

  	package com.yaa.dao.impl;
    
    import com.yaa.dao.UserDao;
    import com.yaa.model.User;
    import org.springframework.stereotype.Repository;
    import org.springframework.transaction.annotation.Transactional;
    
    @Repository
    @Transactional(rollbackFor = Exception.class)
    public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao{
    
        @Override
        public void saveUser(User user) {
            try {
                save(user);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

2.service层

package com.yaa.service.impl;

import com.yaa.dao.UserDao;
import com.yaa.model.User;
import com.yaa.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserDao userDao;

    @Override
    public void save(User user) {
        userDao.saveUser(user);
    }
}

3.action层

package com.yaa.action;
    
    import com.opensymphony.xwork2.ActionSupport;
    import com.yaa.model.User;
    import com.yaa.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    
    import java.util.UUID;
    
    
    @Controller
    public class UserAction extends ActionSupport {
    
       @Autowired
       private UserService userService;
    
    
       public String saveUser(){
           User user = new User();
           user.setName(UUID.randomUUID().toString());
           user.setAge(1);
           user.setSex("m");
           userService.save(user);
           return SUCCESS;
       }
    }

基本的配置信息如上所示
源码地址:点击这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值