`

SSH整合搭建问题(使用Annotation)

    博客分类:
  • SSH
 
阅读更多
三大框架SSH所用jar包及项目机构图:见附件图片

文件 struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC   
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
    "http://struts.apache.org/dtds/struts-2.0.dtd">  
<struts>
	<constant name="struts.objectFactory" value="spring"></constant>
	
    <package name="crs" extends="struts-default">
        <action name="login" class="loginAction" method="login">
            <result name="success">/WEB-INF/pages/userManagement.jsp</result>
            <result name="input">login.jsp</result>
            <result name="error">login.jsp</result>
        </action>
    </package>
    
</struts>  


文件 (Spring) 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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
       default-lazy-init="true">

       
       <!-- <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor"/>
    <bean id="annotationConfiguration" class="org.compass.annotations.config.CompassAnnotationsConfiguration"/>
        -->
       
       <context:component-scan base-package="com.crs"/>
       
       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       		<property name="dataSource" ref="dataSource"/>
       		<property name="annotatedClasses">
       			<list>
       				<value>com.crs.model.User</value>
       			</list>
       			</property>
       </bean>
       
	    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	        <property name="driverClassName" value="${jdbc.driverClassName}"/>
	        <property name="url" value="${jdbc.url}"/>
	        <property name="username" value="${jdbc.username}"/>
	        <property name="password" value="${jdbc.password}"/>
	        <property name="maxActive" value="100"/>
	        <property name="maxWait" value="1000"/>
	        <property name="poolPreparedStatements" value="true"/>
	        <property name="defaultAutoCommit" value="false"/>
	    </bean> 
	    
       
       <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	        <property name="ignoreUnresolvablePlaceholders" value="true"/>
	        <property name="locations">
	            <list>
	                <value>classpath:jdbc.properties</value>
	            </list>
	        </property>
    	</bean>
       
       <bean name="loginAction" class="com.crs.action.LoginAction" scope="prototype"/>
       
</beans>


PAS系统添加事务管理:文件 (Spring) 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: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-2.5.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"
       default-lazy-init="true">
       
       <context:component-scan base-package="com.pas"/>
       
       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       		<property name="dataSource" ref="dataSource"/>
       		<property name="annotatedClasses">
       			<list>
       				<value>com.pas.model.User</value>
       				<value>com.pas.model.PaperBasicInfo</value>
       				<value>com.pas.model.Question</value>
       				<value>com.pas.model.QuestionStyle</value>
       				<value>com.pas.model.StudentScore</value>
       			</list>
       		</property>
       		<property name="hibernateProperties">
       			<value>
       				hibernate.show_sql=false
					hibernate.format_sql=true
				</value>
    		</property>
       </bean>
       
	    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
	        <property name="driverClassName" value="${jdbc.driverClassName}"/>
	        <property name="url" value="${jdbc.url}"/>
	        <property name="username" value="${jdbc.username}"/>
	        <property name="password" value="${jdbc.password}"/>
	        <property name="maxActive" value="100"/>
	        <property name="maxWait" value="1000"/>
	        <property name="poolPreparedStatements" value="true"/>
	        <property name="defaultAutoCommit" value="true"/>
	    </bean> 
	    
	    <!-- 配置事务管理器-->
	    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
			<property name="sessionFactory" ref="sessionFactory"></property>
		</bean>
		
		<!-- 配置事务传播特性 -->
		<tx:advice id="allMethod" transaction-manager="transactionManager">
			<tx:attributes>
				<tx:method name="*" propagation="REQUIRED" rollback-for="Throwable"/>
			</tx:attributes>
		</tx:advice>
		
		<!-- AOP注入事务 -->
		<aop:config>
			<!-- <aop:pointcut id="all_bs_method" expression="execution(* com.pas.service.impl.*Impl.*(..))"/>
			<aop:advisor advice-ref="allMethod" pointcut-ref="all_bs_method"/> -->
			<aop:advisor advice-ref="allMethod" pointcut="execution(* *..service.impl.*Impl.*(..))"/>
		</aop:config>
       
       <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	        <property name="ignoreUnresolvablePlaceholders" value="true"/>
	        <property name="locations">
	            <list>
	                <value>classpath:jdbc.properties</value>
	            </list>
	        </property>
       </bean>
       
</beans>



文件 hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	 <session-factory name="sessionFactory">
		  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		  <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/crs</property>
		  <property name="hibernate.connection.username">root</property>
		  <property name="hibernate.connection.password">root</property>
		  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		  <property name="hibernate.show_sql">false</property>
		  <property name="hibernate.format_sql">true</property>
		  <property name="hbm2ddl.auto">none</property>
		  <property name="current_session_context_class">thread</property>
		  <mapping class="com.crs.model.User"/>
	 </session-factory>
</hibernate-configuration>


文件 jdbc.properties

#Mysql 5.5
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/crs
jdbc.username=root
jdbc.password=root

hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect


#hibernate.dialect=org.hibernate.dialect.SQLServerDialect
#hibernate.dialect=com.capgemini.lamp.util.SQLServer2008Dialect
# Needed by Hibernate3 Maven Plugin defined in pom.xml
#hibernate.connection.username=${jdbc.username}
#hibernate.connection.password=${jdbc.password}
#hibernate.connection.url=${jdbc.url}
#hibernate.connection.driver_class=${jdbc.driverClassName}




然后在MVC的Dao中的用法:
package com.crs.dao.impl;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import com.crs.dao.UserDao;
import com.crs.model.User;

//TODO Add class/interface import here and remove this line.

/**
 * TODO Add class/interface description here and remove this line.
 * 
 * @author BILLYANG, create on 2012-4-24
 * Revision History:
 *      TODO Revised by XXXX on 201x/xx/xx, modified xxx
 */

@Repository("userDao")
public class UserDaoImpl implements UserDao {
    
    /*@Autowired
    private SessionFactory sessionFactory;*/
    
    private HibernateTemplate hibernateTemplate;   
    
    @Resource   
    public void setSessionFactory(SessionFactory sessionFactory) {   
        this.hibernateTemplate = new HibernateTemplate(sessionFactory);   
    }  
    

    @Override
    public User get(Long id) {
        /*Session session = sessionFactory.openSession();
        User result = (User) session.get(User.class, id);
        session.close();
        return result;*/
        return hibernateTemplate.get(User.class, id);
        /*Configuration config = new AnnotationConfiguration();
        config.configure();
        SessionFactory sessionFactory=config.buildSessionFactory();
        Session session=sessionFactory.getCurrentSession();
        session.beginTransaction();
        User result  = (User) session.get(User.class, 5);
        session.getTransaction().commit();
        return result;*/
    }


    @SuppressWarnings("unchecked")
    @Override
    public List<User> getAll() {
        List<User> userList = new ArrayList<User>();
        DetachedCriteria criteria = DetachedCriteria.forClass(User.class);
        List<User> result = hibernateTemplate.findByCriteria(criteria);
        if (result != null && !result.isEmpty()) {
            userList = result;
        }
        return userList;
    }
    
    

}




使用Mysql数据库简单建表语句:
drop database if exists crs;
create database crs;
use crs;

create table user(
id bigint auto_increment primary key,
username varchar(50),
password varchar(50),
realname varchar(50)
);

insert into user(username,password,realname) values('admin','admin','administrator');
insert into user(username,password,realname) values('bill','bill','yangfan');
insert into user(username,password,realname) values('allen','allen','zhangdong');
insert into user(username,password,realname) values('john','john','qiaoshili');
insert into user(username,password,realname) values('girl','girl','nvhai');
--#insert into user(username,password,realname) values('bill','bill','杨帆');




以上为搭建SSH框架重要部分,希望能对以后有所帮助
  • 大小: 63 KB
  • 大小: 56.5 KB
  • 大小: 47.2 KB
分享到:
评论

相关推荐

    ssh注解方式整合项目

    在传统的SSH整合中,我们需要配置大量的XML文件来管理各个框架的配置信息。然而,随着Java开发的进步,注解(Annotation)的使用越来越广泛,它简化了配置,提高了开发效率。本文将详细讲解如何通过注解方式整合SSH...

    ssh2全annotation配置模板

    这个“ssh2全annotation配置模板”旨在提供一个简洁且高效的整合示例,利用注解(Annotation)来减少XML配置文件的复杂性。接下来,我们将详细讨论SSH2框架中的各个组件以及它们如何通过注解进行配置。 首先,...

    SSH整合&&SSH集成开发

    SSH整合指的是将Spring、Struts和Hibernate这三个开源框架集成为一个完整的Java Web开发解决方案。SSH分别是Spring框架、Struts框架和Hibernate框架的首字母缩写。它们分别负责应用的依赖注入、MVC(Model-View-...

    SSH2整合详细示例

    ### SSH2整合详细示例 #### 一、前言 在Java Web开发领域,Struts2、Hibernate与Spring(简称SSH)三个框架被广泛应用于构建企业级应用系统。本示例将详细介绍如何整合这三个框架,实现一个简单的增删改查(CRUD)...

    ssh注解整合

    ### SSH注解整合知识点 #### 一、概述 在软件开发领域,特别是Java Web应用开发中,SSH(Struts + Spring + Hibernate)架构是一种非常流行的轻量级开发框架组合。随着技术的发展,基于注解(Annotation)的配置...

    使用Annotation并对DAO层封装具有分页功能的S2SH整合实例_好资源0分送

    ### 使用Annotation并对DAO层封装具有分页功能的S2SH整合实例 #### 一、概述与背景 随着软件开发技术的不断进步,越来越多的技术趋势正在影响着开发模式的选择。其中,注解(Annotation)作为Java SE 5引入的一项...

    sshFrame(struts2.3.4+spring3.1+heibernate4.0+annotation零配置

    在这个"sshFrame(struts2.3.4+spring3.1+heibernate4.0+annotation零配置"项目中,我们看到作者使用的是Struts2的3.4版本,Spring的3.1版本以及Hibernate的4.0版本,这些都是成熟且广泛使用的开源库。 **Struts2** ...

    ssh2整合案例和详解

    ### SSH2整合案例详解 #### 一、概述 SSH2是指Struts2、Spring和Hibernate三个框架的集成应用。本文将详细介绍如何在一个项目中整合这三个框架,并通过具体步骤展示整个过程。本案例采用的开发环境为MyEclipse 7.0...

    通俗易懂的SSH实例 实现增删改查功能

    SSH(Struts + Spring + Hibernate)是Java Web开发中一个非常流行的组合框架,它能够帮助开发者快速搭建出稳定、高效的Web应用程序。接下来我们将详细介绍如何通过MyEclipse集成开发环境(IDE)构建一个完整的SSH...

    struts2_1_8spring3hibernate3_5_1_annotation_XML都有

    SSH整合时,Spring通常作为"粘合剂",负责管理和调用Struts2的Action以及Hibernate的数据访问对象(DAO)。通过Spring的ApplicationContext,可以将Struts2的Action和Hibernate的SessionFactory注入到需要的地方,...

    学习SSH2的相关资料

    7. `firstssh` - 这可能是一个基于SSH2的初学者项目,包含了使用Struts2、Spring和Hibernate搭建的基础应用实例。 通过这些文件,开发者可以学习到如何将SSH2框架整合到实际项目中,包括如何配置Struts2的Action和...

    struts1.3+spring2.5+hibernate3.3 组合开发 annotation实现

    在本项目中,这些框架的集成使用了注解(Annotation)来简化配置,使得代码更加简洁和易于维护。 Struts1.3 是一个基于 Model-View-Controller (MVC) 模式的开源框架,用于构建动态 Web 应用。它提供了一种结构化的...

    Struts2+Hibernate+Spring  SSH开发jar包

    这个“SSH开发jar包”中包含了这三个框架的各个组件,使得开发者可以快速搭建一个整合了Struts2、Hibernate和Spring的开发环境。例如,lib文件夹下可能包括了以下jar包: - Struts2的`struts2-core.jar`、`struts2-...

    Maven下搭建Struts2+spring+hibernate框架

    下面将详细介绍如何在Maven环境下搭建SSH框架。 首先,我们需要了解Maven的基础知识。Maven使用POM(Project Object Model)文件来管理项目的依赖关系,它会自动下载并管理所需的库文件。在创建SSH项目时,我们需要...

    sshe整合教程

    - **表结构生成**:利用 MyEclipse 自动生成 hibernate mapping 文件(.hbm.xml)或 annotation 类。 #### 四、SSHE框架搭建 1. **创建 Maven 工程** - 在 MyEclipse 中使用 Maven 创建新工程。 - 添加必要的...

    spring框架案例学习文档笔记

    #### 第十二课:SSH整合存在的问题 - **常见问题**: - JSP访问Session失败。 - 不配置事务导致的问题。 - 中文乱码处理。 #### 第十三课:SSH整合的jar包 - **所需JAR包**: - **Struts2**:包含Struts2核心库...

    ssh2的基于MVC的curd(带事务)

    通过以上步骤,我们可以使用SSH2框架轻松地实现基于MVC架构的CRUD操作,并加入事务管理以提高应用程序的可靠性和安全性。SSH2框架的强大之处在于它不仅简化了开发过程,还提供了高度灵活和可扩展的解决方案,适用于...

Global site tag (gtag.js) - Google Analytics