整合开发Struts2,Hibernate,Spring简单框架的搭建详解

搭建一个简单的Struts2+Spring+Hibernate框架 由于要做一个java web 的项目,需要搭建一个SSH框架,留下笔记,备查。 一、新建Web Project 二、添加struts支持 添加Struts支持、Spring支持、Hibernate支持,都是右键工程——MyEclipse——Add****。 (1)选择Struts2.1,URL pattern选择/* 然后Next--------------------------- 阅读详情

                        整合开发Struts2,Hibernate,Spring简单框架的搭建

 

第一步:整合开发Struts2,Hibernate,Spring需要的JAR 如图所示:

第二步:在spring中的applicationContext.xml配置数据库连接池,sessionFactory工厂,hibernate事务管理器,事务的通知给事务配置一个切面,导入其他的配置文件

    <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:aop="http://www.springframework.org/schema/aop" 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-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/aop

       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

       http://www.springframework.org/schema/tx

       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 

 

    <!-- 数据库的连接池 -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"

       destroy-method="close">

       <property name="driverClass" value="com.mysql.jdbc.Driver" />

       <property name="jdbcUrl"

           value="jdbc:mysql://localhost:3306/spring?useUnicode=true&amp;characterEncoding=UTF-8" />

       <property name="user" value="root" />

       <property name="password" value="123" />

       <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->

       <property name="initialPoolSize" value="1" />

       <!--连接池中保留的最小连接数。 -->

       <property name="minPoolSize" value="1" />

       <!--连接池中保留的最大连接数。Default: 15 -->

       <property name="maxPoolSize" value="300" />

       <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->

       <property name="maxIdleTime" value="60" />

       <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->

       <property name="acquireIncrement" value="5" />

       <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->

       <property name="idleConnectionTestPeriod" value="60" />

    </bean>

 

 

    <!-- sessionFactory工厂 -->

    <bean id="sessionFactory"

       class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

       <property name="dataSource" ref="dataSource" />

       <property name="mappingResources">

           <list>

              <value>cn/csdn/hr/s2sh/domain/Admin.hbm.xml</value>

           </list>

       </property>

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>

              <prop key="hibernate.hbm2ddl.auto">update</prop>

              <prop key="hibernate.show_sql">true</prop>

              <prop key="hibernate.format_sql">true</prop>

           </props>

       </property>

    </bean>

 

 

    <!-- hiberante事务管理器 -->

    <bean id="hibernateTransactionManager"

       class="org.springframework.orm.hibernate3.HibernateTransactionManager">

       <property name="sessionFactory" ref="sessionFactory" />

    </bean>

 

 

    <!-- 事务的通知 -->

    <tx:advice id="txadvice" transaction-manager="hibernateTransactionManager">

       <tx:attributes>

           <tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED" />

           <tx:method name="insert*" isolation="DEFAULT" propagation="REQUIRED" />

           <tx:method name="find*" isolation="DEFAULT" propagation="REQUIRED" />

           <tx:method name="update*" isolation="DEFAULT" propagation="REQUIRED" />

       </tx:attributes>

    </tx:advice>

 

    <!-- 给事务配置一个切面 -->

    <aop:config>

       <!-- advisor 切入点和通知组合体 -->

       <aop:pointcut expression="execution(* cn.csdn.hr.hiberante.service.*.*(..))"

           id="txPointcut" />

       <aop:advisor advice-ref="txadvice" pointcut-ref="txPointcut" />

    </aop:config>

 

 

    <!-- 导入其它的配置文件 -->

    <import resource="beans-dao.xml"/>

    <import resource="beans-service.xml"/>

    <import resource="beans-action.xml"/>

 

</beans>    

第三步:新建cn.csdn.hr.s2sh.damain包,在此包下新建Admin.java类和对应的Admin.hbm.xml文件。

package cn.csdn.hr.s2sh.domain;

 

import java.io.Serializable;

 

 

//创建了一个实体bean

publicclass Admin implements Serializable{

 

    /**

     *

     */

    privatestaticfinallongserialVersionUID = 1L;

    private Integer id;

    private String name;

    private String pass;

   

    public Admin() {

       super();

       // TODO Auto-generated constructor stub

    }

   

    public Admin(String name, String pass) {

       super();

       this.name = name;

       this.pass = pass;

    }

 

    public Integer getId() {

       returnid;

    }

    publicvoid setId(Integer id) {

       this.id = id;

    }

    public String getName() {

       returnname;

    }

    publicvoid setName(String name) {

       this.name = name;

    }

 

    public String getPass() {

       returnpass;

    }

 

    publicvoid setPass(String pass) {

       this.pass = pass;

    }

 

    @Override

    public String toString() {

       return"Admin [id=" + id + ", name=" + name + ", pass=" + pass + "]";

    }

   

   

   

}

 Xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC

    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

   

<hibernate-mapping package="cn.csdn.hr.s2sh.domain">

  <class name="Admin" table="admin">

    <id column="id" name="id" type="integer">

        <generator class="native"/>

    </id>

    <property name="name" column="name" type="string" length="40" unique="true"/>

    <property name="pass" column="pass" type="string" length="40"/>

  </class>

 

</hibernate-mapping>

 

 

第四步:新建cn.csdn.hr.s2sh.dao包,在此包下新建接口AdminDao.java和实现此接口的类AdminDaoImpl.java

  package cn.csdn.hr.s2sh.dao;

 

import java.util.List;

 

import cn.csdn.hr.s2sh.domain.Admin;

 

public interface AdminDao {

 

      public List<Admin> findAll();

     

     

      public void delete(Admin entity);

      public void update(Admin entity);

      public Admin findById(Integer id);

      public Admin findByName(String name);

      public void insert(Admin entity);

     

      public Admin login(final String name,final String pass);

     

     

}

 

 

package cn.csdn.hr.s2sh.dao;

 

import java.sql.SQLException;

import java.util.List;

 

import org.hibernate.HibernateException;

import org.hibernate.Session;

import org.springframework.orm.hibernate3.HibernateCallback;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

 

import cn.csdn.hr.s2sh.domain.Admin;

 

public class AdminDaoImpl extends HibernateDaoSupport implements AdminDao {

 

 

    public List<Admin> findAll() {

       List<Admin> admins = this.getHibernateTemplate().find("from Admin");

       return admins;

    }

 

 

    public void delete(Admin entity) {

       this.getHibernateTemplate().delete(entity);

      

    }

 

 

    public void update(Admin entity) {

       this.getHibernateTemplate().update(entity);

      

    }

 

 

    public Admin findById(Integer id) {

      Admin entity = (Admin) this.getHibernateTemplate().get(Admin.class, id);

       return entity;

    }

 

 

    public Admin findByName(final String name) {

       return  (Admin) this.getHibernateTemplate().execute(new HibernateCallback() {

      

           public Object doInHibernate(Session session) throws HibernateException,

                  SQLException {

              Object obj = session.createQuery("from Admin where name=:name").setString("name", name).uniqueResult();

              return obj;

           }

       });

   

    }

 

 

    public void insert(Admin entity) {

       this.getHibernateTemplate().save(entity);

      

    }

 

 

    public Admin login(final String name,final String pass) {

   

       return  (Admin) this.getHibernateTemplate().execute(new HibernateCallback() {

          

           public Object doInHibernate(Session session) throws HibernateException,

                  SQLException {

              Object obj = session.createQuery("from Admin where name=:name and pass=:pass").setString("name", name).setString("pass", pass).uniqueResult();

              return obj;

           }

       });

    }

 

}

第五步:新建cn.csdn.hr.s2sh.service包,在此包下新建接口AdminService.java和实现此接口的类AdminServiceImpl.java

 

package cn.csdn.hr.s2sh.service;

 

import java.util.List;

 

import cn.csdn.hr.s2sh.domain.Admin;

 

public interface AdminService {

 

    public List<Admin> findAll();

     

     

      public void delete(Admin entity);

      public void update(Admin entity);

      public Admin findById(Integer id);

      public Admin findByName(String name);

      public void insert(Admin entity);

     

      public Admin login(final String name,final String pass);

}

 

package cn.csdn.hr.s2sh.service;

 

import java.util.List;

 

 

import cn.csdn.hr.s2sh.dao.AdminDao;

import cn.csdn.hr.s2sh.domain.Admin;

 

public class AdminServiceImpl implements AdminService {

 

    // Dao对象声明

    private AdminDao adminDao;

 

    // 注入的Dao对象

    public void setAdminDao(AdminDao adminDao) {

       this.adminDao = adminDao;

    }

 

    public List<Admin> findAll() {

       // TODO Auto-generated method stub

       return adminDao.findAll();

    }

 

    public void delete(final Admin entity) {

 

       adminDao.delete(entity);

 

    }

 

    public void update(Admin entity) {

       adminDao.update(entity);

 

    }

 

    public Admin findById(Integer id) {

       return adminDao.findById(id);

    }

 

    public Admin findByName(String name) {

       return adminDao.findByName(name);

    }

 

    public void insert(Admin entity) {

       adminDao.insert(entity);

 

    }

 

    public Admin login(String name, String pass) {

   

       return adminDao.login(name, pass);

    }

 

}

第六步:编写登陆界面index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Insert title here</title>

</head>

<body>

 

    <div>

       <form action="/s2sh/csdn/loginAdmin.action" method="post">

                 用户名:<input type="text" name="admin.name"><br/>

           密&nbsp;&nbsp;码:<input type="password" name="admin.pass"><br />

           <input type="submit" value="登陆"><input type="reset"

              value="重置">

       </form>

    </div>

 

    <div>登陆成功的用户名${admin.name}</div>

 

</body>

</html>

 

第七步:新建包cn.csdn.hr.s2sh.action在此包下新建类AdminActiobn.java实现简单的登陆的功能。

  package cn.csdn.hr.s2sh.action;

 

import cn.csdn.hr.s2sh.domain.Admin;

import cn.csdn.hr.s2sh.service.AdminService;

 

import com.opensymphony.xwork2.ActionSupport;

 

public class AdminAction extends ActionSupport{

 

    /**

     *

     */

    private static final long serialVersionUID = 1L;

    private AdminService adminService;

   

    private Admin admin;

 

    public Admin getAdmin() {

       return admin;

    }

 

    public void setAdmin(Admin admin) {

       this.admin = admin;

    }

 

    public void setAdminService(AdminService adminService) {

       this.adminService = adminService;

    }

 

    public String login(){

       System.out.println("==========================================");

       admin = adminService.login(admin.getName(), admin.getPass());

       if (admin != null) {

           return SUCCESS;

       } else {

           return INPUT;

       }

      

    }

   

   

   

}

 第八步:编写struts.xml代码:

   <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   <!--常量 -->

   <!-- 是用spring创建和管理struts2 的action操作 -->

   <constant name="struts.objectFactory" value="spring"></constant>

   <!-- 包含其它的配置文件 -->

   <include file="struts-admin.xml"></include>

</struts>

 

第九步:编写struts-admin.xml

   <!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <package name="" extends="struts-default" namespace="/csdn">

        <!-- class的名称等于spring中action配置文件中的 id名称  -->

        <action name="loginAdmin" class="adminAction" method="login">

          <result name="success">../index.jsp</result>

        </action>

    </package>

</struts> 

第十步:配置admin的action的beans-action.xml

       <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:aop="http://www.springframework.org/schema/aop" 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-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/aop

       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

       http://www.springframework.org/schema/tx

       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 

 

    <!-- 配置admin的action -->

    <bean id="adminAction" class="cn.csdn.hr.s2sh.action.AdminAction" scope="prototype">

      <!-- 引入业务bean的操作 -->

      <property name="adminService" ref="adminServiceImpl"/>

    </bean>

   

   

</beans>      

 

第十一步:admin的业务层beans-service.xml文件

    <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:aop="http://www.springframework.org/schema/aop" 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-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/aop

       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

       http://www.springframework.org/schema/tx

       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 

     <!-- admin的业务操作 -->

     <bean id="adminServiceImpl" class="cn.csdn.hr.s2sh.service.AdminServiceImpl">

       <property name="adminDao" ref="adminDaoImpl"/>

     </bean>

 

</beans>      

 

第十二步:admin的dao对象

   <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"

    xmlns:aop="http://www.springframework.org/schema/aop" 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-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/aop

       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

       http://www.springframework.org/schema/tx

       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

 

 

  <!-- HibernateDaoSupport -->

   <bean id="hibernateDaoSupport" class="org.springframework.orm.hibernate3.support.HibernateDaoSupport" abstract="true">

     <property name="sessionFactory" ref="sessionFactory"/>

   </bean>

 

    <!-- admin的Dao对象 -->

    <bean id="adminDaoImpl" class="cn.csdn.hr.s2sh.dao.AdminDaoImpl" parent="hibernateDaoSupport"/>

 

</beans>      

 

 

 

 

 

 

 

 

 

 

 

 

 

Struts2+Hibernate+Spring框架整合开发实践 本文还有配套的精品资源,点击获取 简介:Struts2、Hibernate和Spring是Java开发中广泛使用的三大轻量级框架。Struts2负责前端交互和业务逻辑分离,Hibernate简化数据库操作,Spring提供全面的后端服务。整合这些框架能够构建出高效、松耦合的企业级应用,降低开发难度,提高效率。本实践项目涵盖了MVC模式、对象关系映射、依赖注入、面向切面编程等... 阅读详情

相关推荐

Java Web开发框架整合实战:Spring+Hibernate+Struts2

Spring框架由Rod Johnson创建,并首次发布于2003年,是一个开源的Java平台,它为现代企业级应用提供了全方位的编程和配置模型。Spring的核心理念是提供一种轻量级的、非侵入式的方式来开发Java应用。它遵循POJO(Plain Old Java Objects)原则,这意味着我们可以在不依赖于特定的Spring API的情况下编写业务逻辑。这一理念的优势在于能够让开发者专注于业务逻辑,而不是框架的细节。

weixin_42576410的博客 915

【Spring实战-3】Spring整合Hibernate、Struts

作者:ssslinppp 1. 摘要 版本: Spring4.0.4; Hibernate4.3.5; struts2.3.16; 主要介绍了如下内容: 项目结构的规...

chengti1867的博客 184

全面掌握Maven整合Struts2+Spring+Hibernate框架教程

简介:在现代Java开发中,利用Maven项目管理工具和SSH框架组合——即Struts2、Spring、Hibernate,可以高效构建可维护的Web应用程序。SSH框架提供了MVC架构支持,简化了业务逻辑、数据持久化和控制层的实现。本文将指导开发者如何在Maven环境下搭建SSH框架,包括理解Maven依赖管理、配置Struts2处理HTTP请求、设置Spring的bean和事务管理、以及整合Hibernate进行数据库操作。

weixin_36074800的博客 897

Spring框架(JavaEE开发进阶Ⅲ)—spring和struts2、hibernate的集成

一、主要内容 1、引入jar包 2、web.xml配置文件 3、Spring应用上下文配置文件 4、struts.xml配置文件 5、整合项目架构 二、引入jar包 1、引入SSH项目所需要的所有Jar包,分为四类: 1)Spring3的jar包 2)Hibernate4的jar包 3)Struts2的jar包 4)其他的jar包 2、我们以 Struts2.3.16、 Spring3.2.15...

csj50的专栏 404

SSH框架整合实战:Struts2、Hibernate、Spring的集成与测试

Struts2框架作为企业级Java Web应用的首选框架之一,凭借其强大的功能和灵活的配置,得到了广泛的使用。本章节将详细介绍Struts2框架的基本组成、核心组件的作用、HTTP请求的处理流程以及Struts2中的Action和拦截器。Hibernate是一个全功能的ORM(对象关系映射)框架,它将Java对象映射到数据库表,提供了一种面向对象的方式来操作数据库。Hibernate框架简化了基于Java的应用程序与数据库交互的复杂性。

weixin_28487725的博客 714

保姆级教程:用Verilog手把手实现一个MIPI CSI-2 D-PHY接收器(附PPI接口时序详解)

本文提供了一份详细的Verilog实现MIPI CSI-2 D-PHY接收器的教程,重点解析了PPI接口时序和deskew数据对齐技术。通过模块划分、时钟域处理、状态机设计和错误恢复机制等实战内容,帮助开发者掌握高速数据接收的核心技术,适用于嵌入式视觉系统开发。

weixin_30619101的博客 512

struts-config.xml文件中的form-bean和action-bean关系

用来设置Model的指向,这个例子意思是页面里的loginForm需要调用com.text.LoginForm 这个bean 如:                    type="com.test.LoginAction"                name="loginForm"               scope="request"               inpu

一念永恒 5199

CCS8.1 导入CCS3.3工程方法

    CCS3.3作为开发人员使用最广开发工具,研究人员手上存在不少该版本的建立的程序版本,然而随着TI公司推出高级版本的CCS平台,在新的平台上集成了更加丰富的功能和优点。利用新版本的平台在开发和编译旧版本工程上可以节省大量时间和精力。在使用新版本开发3.3版本工程时,首要解决的就是加载3.3的工程文件,现将加载过程记录如下: 第一步:Project-&gt;Import Legacy CC...

1万+

spring配置文件详解--真的蛮详细

转自: http://book.51cto.com/art/201004/193743.htm Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Sp

u012049463的专栏 2万+

Mamba SSM 实战:IMDb 文本分类 + Mamba-ssm 全流程

Mamba SSM 文本分类链路:IMDb 二分类 → MambaLMHeadModel (d_model=256, n_layer=8, d_state=16, exp2=2) → 末 token 分类头。5 epoch 达 89.2% 准确率 (与 BERT-base 持平), 但显存降低 44% (3.5GB vs 6.2GB)。建议序列长度 ≥ 1024 再选 Mamba, 短序列 (< 512) 用 BERT 更高效。扩展时注意d_state。

m0_71589036的博客 57

Python爬虫:抓取交通工具班次数据(公交、地铁等时刻表)

然而,由于这些信息并不总是以开放的API形式提供,因此爬虫技术成为了获取和分析这些数据的有效途径。然而,由于很多公交公司没有公开API,通常我们通过抓取其网页中的时刻表数据来获取信息。通过这些步骤,您可以轻松抓取交通工具的班次信息,并进行进一步的数据分析,辅助交通规划和出行推荐系统的建设。在这篇文章中,我们将演示如何使用Python爬虫技术抓取公交、地铁等交通工具的班次和时刻表数据。我们可以将公交和地铁的数据合并,进行综合分析。我们可以进一步分析地铁班次的发车频率,甚至可以比较不同地铁线路的班次。

2201_76125261的博客 953

SSH框架(Struts2+Spring+Hibernate)搭建整合详细步骤

​ 在实际项目的开发中,为了充分利用各个框架的优点,我们通常都会把Spring与其他框架整合在一起使用。本节将针对 SSH(Struts2、Hibernate和 Spring)框架的整合内容进行详细讲解。 ​

unber的博客 2516

uniapp(vue3)- 详解安装/使用pinia报错reportJSException >>>> exception function:createInstanceContext, excepti

uniapp vue3 pinia报错reportJSException >>>> exception function:createInstanceContext, exception:white screen cause create instanceContext failed,check js stack -> at useStore,H5网页,微信小程序,安卓App,苹果App,nvue,uniapp安装使用pinia出现报错at useStore,uniapp+vue3+ts 使用pinia报

🏆 前端领域优质创作者 4046

【JAVA基础】struts-spring-hibernate环境简单搭建

一、创建动态WEB项目 开发工具:eclipse 项目结构:struts2+spring+hibernate 数据库: mysql 1、准备Struts2的相关jar包 struts官网下载“struts-2-xxx-all”,解压后进入它的apps文件中能看到几个war文件,随便找一个war文件解压之后找到它的WEB-INF下的lib文件。 asm

好看的皮囊千篇一律有趣的灵魂万里挑一 881

C# + NAudio:构建支持实时音频处理的语音聊天应用(含回声消除)

本文介绍了如何利用C#和NAudio库开发实时语音聊天应用,重点实现回声消除功能。首先概述了NAudio库在音频处理中的作用,包括音频录制、播放和实时处理能力。然后详细讲解了构建基础语音聊天应用的过程,包括麦克风录制和扬声器播放的实现。接着深入探讨了回声消除的原理和实现方法,提出通过比较麦克风输入和扬声器输出的音频信号来消除回声,并给出了核心代码示例。最后,文章还讨论了性能优化方向,如多线程处理和网络传输扩展。该方案为开发高质量实时语音应用提供了实用参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1009

写给开发人员的实用密码学 - Hash算法

说到Hash(哈希),开发人员应该不陌生,比如Hash表是一种非常常用的数据结构,通过Hash表能够根据键值快速找到数据。哈希函数将文本(或其他数据)映射为整数,从而能够提高检索效率。密...

云水木石 1503

struts2+spring+hibernate s2sh结合方式框架搭建开发

struts2+spring+hibernate s2sh结合方式框架搭建开发 1.使用全xml配置开发s2sh,需要配置hibernate,struts, 创建mysql表: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT NULL, `phone`

qq_31968809的博客 339

多物理场光学仿真软件:Lumerical_(15).多物理场耦合仿真案例分析

在多物理场光学仿真中,Lumerical 软件提供了强大的工具来模拟复杂的光学系统,包括光子学、热学、力学和电学等多物理场的耦合。本节将通过具体的案例分析,展示如何在 Lumerical 中进行多物理场耦合仿真的开发和实现。我们将从简单的热光效应仿真入手,逐步深入到更复杂的多物理场耦合场景,如光电效应和光力学效应。每个案例都将包括详细的原理说明和具体的代码示例,帮助读者更好地理解和应用这些技术。

kkchenjj的博客 1021

ssh框架搭建Struts2.06+spring2.5+hibernate3.2整合实例代码教程步骤

原创整理不易,转载请注明出处:ssh框架搭建Struts2.06+spring2.5+hibernate3.2整合实例代码教程步骤 代码下载地址:http://www.zuidaima.com/share/1760074977233920.htm 最近闲来无事可做,于是开始学习struts2。Struts2和struts1、webwork2有什么区别我也不说了,网上有很多这方面的资料。以前在...

云淡风轻、仅此一抹 176

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

S2SH(struts2+spring+hibernate整合)要点,注意点

S2SH(struts2+spring+hibernate整合)要点,注意点 ------------------------统一IDE,Struts2,Spring,Hibernate版本: Myeclipse: 7.0 web project: javaEE 1.4 jdk : 1.5(5.0) Tomcat: tomcat6.0.18 oracle: 10g Stru...

jsx112的专栏 202

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Struts2+Spring+Hibernate整合过程详解

Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用。作为最成功的Web框架,Struts拥有众多的优点:MVC 2模型的使用、功能齐全的标志库(Tag Library)、开放源代码。而Spring的出现,在某些方面极大的方面了Struts的发展。同时,Hibernate作为对象持久化的框架,能迅速的提高软件开发的效率与生产力。这三种流行框架的整合应用,可以发挥它

811

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaWeb开发之SSH框架整合——Struts2+Spring3+Hibernate3三大框架的整合

Struts2+Spring3+Hibernate3导包 Struts2导包与配置 Struts2/apps/struts2-blank.war/WEB-INF/lib/*.jar 如下图所示: 导入与Spring整合的jar包 struts2-spring-plugin-2.3.15.1.jar  用于Struts2整合Springstruts2-json-plugin

3117

SSH三大框架搭建整合struts2+spring+hibernate

SSH框架整合理论: 在SSH框架的JAVAweb项目的开发过程中,WEB层通常使用的是Struts2+jsp,service层使用的是javaBean,DAO层使用的是hibernate,而spring的使用覆盖三层。 使用了spring框架之后,我们可以把对象交给spring来管理。在WEB层中,所有action对象的创建和管理都可以交给spring来完成,这样Struts2就不用自己来new...

子非鱼的博客 1081

struts2+spring4+hibernate5整合实例

struts2作为一个很传统的mvc框架,在一些项目中,仍然发挥着重要的作用,另外hibernate和spring的结合也是很常见的,这里介绍struts2+hibernate5+spring4的整合,因为struts2支持最高的spring是4版本,所以这里采用的是spring4。整合的思路比较简单,可以从struts2+spring整合,然后接着整合hibernate+spring。也可以反过...

feinifi的博客 1777

Spring、Struts2、Hibernate整合

一、   Struts 2框架整合Spring步骤 工作之后这些框架很久都没接触了,作为备忘,记录一下,以后用到的时候方便查看 1、 复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。

hantianjie_的专栏 999

Struts2、spring、hibernate框架整合

Struts2、spring、hibernate框架整合一、整合原理二、导入依赖包2.1 hibernate包2.1.1 hibernate/lib/required2.1.2 hibernate/lib/jpa | java persist api java的持久化规范(接口)![在这里插入图片描述](https://img-blog.csdnimg.cn/20200205122954250.p...

tianzhen620的博客 336
上一篇: spring +hibernate 的应用详解
下一篇: webService基础详解
日依
博客等级 码龄15年 165粉丝 165原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值