以前在购物车项目写的spring配置文件和spring简单整合struts的文件

Spring与Hibernate整合实践
本文详细介绍了Spring框架与Hibernate ORM工具的整合过程,包括配置数据源、定义SessionFactory、配置事务管理器等内容。此外,还展示了如何通过Spring进行事务管理及具体的DAO实现。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost/huanglq</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>
<!--bean id="dataSource"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/huanglq</value>
</property>
</bean-->

<!-- 定义Hibernate SessionFactory,在hibernate配置文件中用到的配置项
都可以移植到此处,包括hbm文件路径、dialect、是否显示sql语句等-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>com/huanglq/vo/EcCategory.hbm.xml</value>
<value>com/huanglq/vo/EcProduct.hbm.xml</value>
<value>com/huanglq/vo/EcContactinfo.hbm.xml</value>
<value>com/huanglq/vo/EcUser.hbm.xml</value>
<value>com/huanglq/vo/EcOrder.hbm.xml</value>
<value>com/huanglq/vo/EcOrderline.hbm.xml</value>
<value>com/huanglq/vo/EcPayway.hbm.xml</value>
<value>com/huanglq/vo/EcOrderstatus.hbm.xml</value>
</list>
</property>
<!--可以把上面的一堆改为下面的形式
<property name="mappingDirectoryLocations">
<list>
<value>classpath*:/com/huanglq/vo/</value>
</list>
</property>
-->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQL5Dialect
</prop>
<prop key="hibernate.query.substitutions">
true 'Y', false 'N'
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<!--定义事务管理器 -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<!-- 定义事务的处理的拦截代理器 -->
<!--
1、PROPAGATION_REQUIRED :支持当前的事务,如果不存在就创建一个新的。这是最常用的选择。
2、PROPAGATION_SUPPORTS :支持当前的事务,如果不存在就不使用事务。
3、PROPAGATION_MANDATORY :支持当前的事务,如果不存在就抛出异常。
4、PROPAGATION_REQUIRES_NEW :创建一个新的事务,并暂停当前的事务(如果存在)。
5、PROPAGATION_NOT_SUPPORTED :不使用事务,并暂停当前的事务(如果存在)。
6、PROPAGATION_NEVER :不使用事务,如果当前存在事务就抛出异常。
7、PROPAGATION_NESTED :如果当前存在事务就作为嵌入事务执行,否则与PROPAGATION_REQUIRED类似。
-->
<bean id="baseTransactionProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true"><!--允许子类-->
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="modify*">PROPAGATION_REQUIRED</prop>
<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

<!-- 配置产品Dao -->
<bean id="productDao" class="com.huanglq.dao.ProductHDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!-- 配置产品Bo -->
<bean id="productBo" class="com.huanglq.bo.ProductBusinessImpl">
<property name="productDao" ref="productDao" />
</bean>
<!-- 可以配置多个业务逻辑对象的事务代理器 -->
<!-- 在dao的级别进行事务管理 -->
<bean id="productDaoProxy" parent="baseTransactionProxy">
<property name="target" ref="productDao" />
</bean>

<!-- 配置用户dao -->
<bean id="userDao" class="com.huanglq.dao.UserHDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<!-- 配置用户Bo -->
<bean id="userBo" class="com.huanglq.bo.UserBusinessImpl">
<property name="userDao" ref="userDao" />
</bean>
<!-- 在dao级别进行事务管理 -->
<bean id="userDaoProxy" parent="baseTransactionProxy">
<property name="target" ref="userDao" />
</bean>

<!-- 不同的用户必须使用不同的购物车 -->
<!-- 购物车应该是在session被创建的时候才创建 -->
<!-- 购物车不应该由Spring管理 -->
<!-- Sesion被创建的时候,必须创建购物车,可以使用SessionListener -->
<bean id="shoppingCartBo" class="com.huanglq.bo.ShoppingCartImpl">
</bean>


<!-- 订单管理 -->
<bean id="orderDao" class="com.huanglq.dao.OrderHDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="orderBo" class="com.huanglq.bo.OrderBusinessImpl">
<property name="orderDao" ref="orderDao" />
</bean>

<bean id="orderDaoProxy" parent="baseTransactionProxy">
<property name="target" ref="orderDao" />
</bean>
</beans>


下面是spring简单整合struts的文件
用的是spring2.5
spring.jar、spring-webmvc-struts.jar、commons-logging.jar

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

<struts-config>
<form-beans>
<form-bean name="userForm"
type="com.huanglq.action.form.UserForm" />

</form-beans>

<global-exceptions />
<global-forwards />
<action-mappings>

<action path="/user"
type="org.springframework.web.struts.DelegatingActionProxy"
attribute="userForm" name="userForm" scope="request"
parameter="method">
<forward name="success" path="/success.jsp" />
<forward name="fail" path="/user/login.jsp" />
</action>
</action-mappings>

<message-resources parameter="com.huanglq.resource.ApplicationResources" />

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>



applicationContext.xml(配置了c3p0)

<?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-2.5.xsd">


<bean id="dataSourse"
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/ssh_example" />
<property name="user" value="root"></property>
<property name="password" value="root"></property>

<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>

<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>

<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
<property name="initialPoolSize">
<value>10</value>
</property>

<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement">
<value>5</value>
</property>

<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。 如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0-->
<property name="maxStatements">
<value>0</value>
</property>

<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
<property name="idleConnectionTestPeriod">
<value>60</value>
</property>

<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
<property name="acquireRetryAttempts">
<value>30</value>
</property>

<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 获取连接失败后该数据源将申明已断开并永久关闭。Default: false-->
<property name="breakAfterAcquireFailure">
<value>true</value>
</property>

<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 等方法来提升连接测试的性能。Default: false -->
<property name="testConnectionOnCheckout">
<value>false</value>
</property>

</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSourse" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.connection.release_mode">
auto
</prop>
<prop key="hibernate.autoReconnect">true</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>

<property name="mappingDirectoryLocations">
<list>
<value>classpath*:/com/huanglq/pojo/</value>
</list>
</property>
</bean>

<bean id="UserDAO" class="com.huanglq.dao.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>

<bean name="/user" class="com.huanglq.action.UserAction">
<property name="userDao">
<ref bean="UserDAO" />
</property>
</bean>
</beans>
本指南详细阐述基于Python编程语言结合OpenCV计算机视觉库构建实时眼部状态分析系统的技术流程。该系统能够准确识别眼部区域,并对眨眼动作与持续闭眼状态进行判别。OpenCV作为功能强大的图像处理工具库,配合Python简洁的语法特性与丰富的第三方模块支持,为开发此类视觉应用提供了理想环境。 在环境配置阶段,除基础Python运行环境外,还需安装OpenCV核心模块与dlib机器学习库。dlib库内置的HOG(方向梯度直方图)特征检测算法在面部特征定位方面表现卓越。 技术实现包含以下关键环节: - 面部区域检测:采用预训练的Haar级联分类器或HOG特征检测器完成初始人脸定位,为后续眼部分析建立基础坐标系 - 眼部精确定位:基于已识别的人脸区域,运用dlib提供的面部特征点预测模型准确标定双眼位置坐标 - 眼睑轮廓分析:通过OpenCV的轮廓提取算法精确勾勒眼睑边缘形态,为状态判别提供几何特征依据 - 眨眼动作识别:通过连续帧序列分析眼睑开合度变化,建立动态阈值模型判断瞬时闭合动作 - 持续闭眼检测:设定更严格的状态持续时间与闭合程度双重标准,准确识别长时间闭眼行为 - 实时处理架构:构建视频流处理管线,通过帧捕获、特征分析、状态判断的循环流程实现实时监控 完整的技术文档应包含模块化代码实现、依赖库安装指引、参数调优指南及常见问题解决方案。示例代码需具备完整的错误处理机制与性能优化建议,涵盖图像预处理、光照补偿等实际应用中的关键技术点。 掌握该技术体系不仅有助于深入理解计算机视觉原理,更为疲劳驾驶预警、医疗监护等实际应用场景提供了可靠的技术基础。后续优化方向可包括多模态特征融合、深度学习模型集成等进阶研究领域。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
项目是一个基于STM32的人脸识别系统,利用OPENCV库进行图像处理,采用QT作为图形界面开发。该系统具备人脸采集、图片训练、数据库管理及人脸识别等功能,能够长时间稳定运行,并提供了统一的接口以便进行二次开发。 功能特点 人脸采集:系统能够从视频图像中采集人脸数据。 图片训练:通过提取人脸特征进行训练,提高识别准确性。 数据库管理:管理人脸数据,便于后续的识别处理。 人脸识别:实现对人脸的检测与识别,适用于多种应用场景。 技术原理 本系统采用基于OPENCV的级联分类检测器,通过视频图像提取人脸特征进行训练。主要技术包括: 光线补偿技术:对图像进行补光处理,提高图像质量。 高斯平滑技术:消除图像噪声,提升图像清晰度。 二值化技术:采用局部阈值进行二值化处理,便于后续的人脸定位特征提取。 应用场景 人脸识别技术在图像处理与视频检索、视频监控、视频显示等方面具有广泛的应用。本系统适用于以下场景: 安全监控:在公共场所进行人脸识别,提高安全监控效率。 身份验证:用于门禁系统、考勤系统等身份验证场景。 智能交互:在智能家居、智能终端等设备中实现人脸识别交互。 开发环境 硬件平台:STM32微控制器 软件平台:OPENCV库、QT图形界面开发工具 使用说明 环境搭建:确保STM32开发环境及OPENCV、QT库已正确安装。 代码编译:按照提供的Makefile文件进行代码编译。 系统运行:将编译后的程序烧录到STM32开发板,启动系统。 功能测试:通过QT界面进行人脸采集、训练识别功能测试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值