程序设计

本文介绍了一个基于J2EE的三层架构设计方案,包括表现层、业务逻辑层和持久层的具体实现。详细讨论了数据库设计、实体类设计、DAO设计和服务层设计等内容,并提供了Spring框架配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、系统总体方案。

本系统采用经典的j2ee的三层机构,即表现层、中间层(业务逻辑层)、持久层。

vis图插不进去,拉到把

2、程序详细设计。

2.1、数据库设计。

        2.1.1、基础数据

        用户权限、角色、用户组基础数据设计。

        2.1.2、业务数据

        业务对象:主帖、复帖、用户、分类模块。

        根据业务需求将T_USER表扩展如下:

             

       对象用户、好友、好友信息关系。

2.2PO层设计。

              2.2.1、实体类。

              每个数据库表代表一个实体类,具体设计如下:

             

       NoticeBaseObject源码如下

      

       2.3DAO设计。

             

       NoticeBaseHibernateDAO源码

             

       2.4SERVICE层设计。

             

      

       2.5WEB层设计。

             

             

              NoticeBaseAction源码

             

       2.6、页面设计

      

       2.7HibernateSpringStrutsLog4j配置文件

      

Noticeaction-Servlet源码

      

       

applicationContext源码:

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

 

    <bean id="dataSource"

       class="org.apache.commons.dbcp.BasicDataSource"

        destroy-method="close">

       <property name="driverClassName"

           value="oracle.jdbc.driver.OracleDriver">

       </property>

       <property name="url" value="jdbc:oracle:thin:@localhost:1521:name"></property>

       <property name="username" value="bbs"></property>

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

       <property name="maxActive" value="100"></property>

       <property name="maxIdle" value="30"></property>

       <property name="maxWait" value="1000"></property>

       <property name="defaultAutoCommit" value="true"></property>

       <property name="removeAbandoned" value="true"></property>

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

       <property name="logAbandoned" value="true"></property>

    </bean>

 

    <bean id="sessionFactory"

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

       <!--property name="configLocation">

           <value>classpath:hibernate.cfg.xml</value>

       </property-->

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

       <property name="mappingResources">

           <list>

              <value>org/lr/bbs/bean/User.hbm.xml</value>

              <value>org/lr/bbs/bean/New.hbm.xml</value>

              <value>org/lr/bbs/bean/Category.hbm.xml</value>

              <value>org/lr/bbs/bean/ReNew.hbm.xml</value>

           </list>

       </property>

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">

                  org.hibernate.dialect.Oracle9Dialect

              </prop>

              <prop key="hibernate.query.factory_class">

                  org.hibernate.hql.classic.ClassicQueryTranslatorFactory

              </prop>

           </props>

       </property>

    </bean>

    <bean id="DAO" class="org.lr.bbs.dao.hibernate.BaseHibernateDAO">

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

    </bean>

    <bean id="CategoryDAO" class="org.lr.bbs.dao.hibernate.CategoryHibernateDAO">

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

    </bean>   

    <bean id="UserDAO" class="org.lr.bbs.dao.hibernate.UserHibernateDAO">

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

    </bean>

    <bean id="NewDAO" class="org.lr.bbs.dao.hibernate.NewHibernateDAO">

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

    </bean>

    <bean id="ReNewDAO" class="org.lr.bbs.dao.hibernate.ReNewHibernateDAO">

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

    </bean>      

    <bean id="transactionManager"

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

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

    </bean>

    <bean id="txProxyTemplate" abstract="true"

       class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

       <property name="transactionManager">

           <ref bean="transactionManager" />

       </property>

       <property name="transactionAttributes">

           <props>

              <prop key="create*">PROPAGATION_REQUIRED</prop>

              <prop key="save*">PROPAGATION_REQUIRED</prop>

              <prop key="remove*">PROPAGATION_REQUIRED</prop>

              <prop key="update*">PROPAGATION_REQUIRED</prop>

              <prop key="del*">PROPAGATION_REQUIRED</prop>

              <prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

           </props>

       </property>

    </bean>

    <bean id="userServiceTarget"

       class="org.lr.bbs.service.imp.UserServiceImpl">

       <property name="userDAO" ref="UserDAO"></property>

       <property name="categoryDAO" ref="CategoryDAO"></property>

       <property name="newDAO" ref="NewDAO"></property>

       <property name="reNewDAO" ref="ReNewDAO"></property>

    </bean>

    <bean id="userService" parent="txProxyTemplate">

       <property name="target" ref="userServiceTarget"></property>

    </bean>   

</beans>

Commons-logging.propertice源码

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

log4jpropertice

log4j.rootLogger=DEBUG,console  

log4j.appender.console=org.apache.log4j.ConsoleAppender   

log4j.appender.console.layout=org.apache.log4j.SimpleLayout

Struts-Config源码

<controller processorClass="org.springframework.web.struts.

   DelegatingRequestProcessor"/> |(1)
 <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames" 
      value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
 </plug-in>
 <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    <set-property property="csntextConfigLocation" value="/WEB-INF/beans.xml"/>
 </plug-in>

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值