日期:2014-05-19  浏览次数:20613 次

J2EE SSH2架构(1)

这段时间比较清闲,就做了几个基础的J2EE架构,一方面积累一下自己的经验,另一方面帮助一下像我一样的新手。第一个例子,使用的是 struts2.1.8+spring2.5.6+hibernate3.3,呵呵……架构形式很老套,网上教程一大把,可是作为新手,我更需要能直接启动起来的,这样学习比较直观,所以,我把弄好的东西,带有jar包一起,传上来,下载下去以后,直接添加项目即可运行。由于我是在一个大的 workspace下开发的,总共开发了四个demo,由于太大,无法将整个workspace上传,只好单个上传。如果有需要整个包的,Mail我。我的

Email:icecream0211@gmail.com

QQ:243949660

好了,言归正传,大概结合代码介绍一下。

第一幅图片是包分布图,具体的配置详细如下


?

这幅图是mysql数据库运行后的结果:


该架构和其他几个的区别是,事务管理方面使用的是spring的声明式事务管理,可以查看包内的具体详情。代码这里贴出:

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<beans>
	<!-- spring 声明式事务处理  -->
	<bean id="txProxyTemplate" abstract="true"
		class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager" ref="transactionManager" />
		<property name="transactionAttributes">
			<props>
				<prop key="*">PROPAGATION_REQUIRED</prop>
				<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="remove*">
					PROPAGATION_REQUIRED,-Exception
				</prop>
				<prop key="delete*">
					PROPAGATION_REQUIRED,-Exception
				</prop>
				<prop key="update*">
					PROPAGATION_REQUIRED,-Exception
				</prop>
				<prop key="do*">PROPAGATION_REQUIRED,-Exception</prop>
			</props>
		</property>
	</bean>
	<!-- 采用bean方式配置数据源,采用spring声明式事务处理 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="hibernateProperties" ref="hibernateProperties" />
		<property name="dataSource" ref="dataSource" />
		<!-- 
			<property name="annotatedClasses">
			<list>
			<value>com.langtoo.domain.core.SysLog</value>
			<value>com.langtoo.domain.core.SysUser</value>
			<value>com.langtoo.domain.core.SysOption</value>
			</list>
			</property>
		-->
		<property name="packagesToScan">
			<list>
				<value>com.bing.entity</value>
			</list>
		</property>
	</bean>
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate3.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
	<bean id="dataSource"
		class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/ssh1" />
		<property name="username" value="root" />
		<property name="password" value="123456" />
	</bean>
	<!-- Clob 类型处理配置 BEGIN -->
	<bean id="defaultLobHandler" lazy-init="true"
		class="org.springframework.jdbc.support.lob.DefaultLobHandler" />

	<!-- hibernate 基本配置  -->
	<bean id="hibernateProperties"
		class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<property name="properties">
			<props>
				<prop key="hibernate.connection.charSet">UTF-8</prop>
				<prop key="hibernate.show_sql">true</prop>
				<prop key="hibernate.dialect">
					org.hibernate.dialect.MySQLDialect
				</prop>
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
	</bean>
	<bean id="BaseDaoBean" abstract="true">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>
</beans>

?

详细的代码可以仔细查看附件中的具体代码。

说明: 仔细的读者可以发现我的附件的实际路径下比贴图中多出两个文件UserDaoBean? UserServiceBean,这两个文件没有用,自行删掉即可。