您的位置:首页 > 其它

选购移动硬盘注意事项

2010-03-23 10:04 288 查看
首先是对于Javaeye 论坛的严格感到惊奇,同时也敬佩他们工作的态度
前些日子写了个DEMO是结合Structs + Hibernate + Spring 技术来写了个用户注册管理的Demo 完了写点心得,以便自己和其他人学习

Demo 用户注册管理的主要功能是用户注册、登录,开始只觉得这点功能很简单,但是后来发现并非想象中的简单,业务逻辑简单,不代表自己可以很快的将它实现,=.=(自己的体会)
设计思路要清晰,MVC模式是我实现或者说是设计的思路。
感觉其实中间最大的艰辛在于架包的选择,当时费了我N天才搞定
我选择的JAR有(放在lib文件夹中)
activation.jar
antlr-2.7.6.jar
aopalliance.jar
c3p0-0.9.0.4.jar
cglib-nodep-2.1_3.jar
classes12.jar
commons-beanutils.jar
commons-collections.jar
commons-digester.jar
commons-logging.jar
commons-validator.jar
dom4j-1.6.1.jar
freemarker-2.3.8.jar
hibernate3.jar
jakarta-oro.jar
jsonplugin-0.7.jar
jta.jar
junit.jar
log4j-1.2.13.jar
ognl-2.6.11.jar
pull-parser-2.1.10.jar
saaj.jar
spring-mock.jar
spring.jar
struts2-core-2.0.8.jar
struts2-spring-plugin-2.0.8.jar
xwork-2.0.3.jar

对象实体是用户User 那么就需要一个 Model 实体
User.java
import java.io.Serializable;

public class User implements Serializable
{
//标识属性
private String id;
//用户名属性
private String userName;
//密码属性
private String password;
//电子邮件属性
private String email;
//以下是setter getter 方法
//......
}

对应的是一个xml映射文件,这个文件映射到数据库中的表和列,User.hbm.xml这个文件不需要放在SRC根目录下,这样方便管理,清晰
User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >

<hibernate-mapping package="gwideal.hklyjj.model.user">
<class name="User"	table="user_table">

<id	name="id" column="user_id" length="32">
<generator class="native"/>
</id>

<property name="userName" column="user_name" not-null="true" length="80" unique="true"/>
<property name="password" column="user_pwd" not-null="true" length="80"/>
<property name="email" length="200"/>

</class>
</hibernate-mapping>

这里要使用Spring 容器来控制管理整个数据库连接事务,所以需要配置一个Spring 的配置文件 applicationContext.xml
applicationContext.xml
<?xml version="1.0" encoding="GBK"?>
<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.xsd"> 
<!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<!-- 指定连接数据库的驱动 -->
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<!-- 指定连接数据库的URL -->
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:ORA"/>
<!-- 指定连接数据库的用户名 -->
<property name="user" value="jaychen"/>
<!-- 指定连接数据库的密码 -->
<property name="password" value=""/>
<!-- 指定连接数据库连接池的最大连接数 -->
<property name="maxPoolSize" value="20"/>
<!-- 指定连接数据库连接池的最小连接数 -->
<property name="minPoolSize" value="1"/>
<!-- 指定连接数据库连接池的初始化连接数 -->
<property name="initialPoolSize" value="1"/>
<!-- 指定连接数据库连接池的连接的最大空闲时间 -->
<property name="maxIdleTime" value="20"/>
</bean>

<!--定义了Hibernate的SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>gwideal\hklyjj\dao\hbm\User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<!--  事务拦截器bean需要依赖注入一个事务管理器 -->
<property name="transactionManager" ref="transactionManager"/>
<property name="transactionAttributes">
<!--  下面定义事务传播属性-->
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<!-- 定义BeanNameAutoProxyCreator-->
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<!--  指定对满足哪些bean name的bean自动生成业务代理 -->
<property name="beanNames">
<!--  下面是所有需要自动创建事务代理的bean-->
<list>
<value>userService</value>
</list>
<!--  此处可增加其他需要自动创建事务代理的bean-->
</property>
<!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
<property name="interceptorNames">
<list>
<!-- 此处可增加其他新的Interceptor -->
<value>transactionInterceptor</value>
</list>
</property>
</bean>

<bean id="userService" class="gwideal.hklyjj.service.general.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>

<bean id="userDao" class="gwideal.hklyjj.dao.hibernate.UserDaoHibernate">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

</beans>

可以根据个人习惯,把这个配置文件按照层次、业务、功能分开。
这个就需要在web.xml文件中做出解释,
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/applicationContext.xml
</param-value>
</context-param>
<!-- 用于初始化Spring容器的Listener -->
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>

<!-- 定义Struts2的FilterDispathcer的Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<!-- FilterDispatcher用来初始化struts2并且处理所有的WEB请求。 -->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: