一个电子商务项目的开发手记

最近要做一个电子商务系统,已经开始三周了。我最终选择的开发环境是:JDK1.5,Tomcat5.5.27,eclipse3.3+myclipse6.0,SqlServer200。采用SSH方案来进行开发。用的是struts1.3.8,spring2.0,hibernate3.1。

在以后我会将遇到的一些技术难点写出来与大家讨论的。

首先来说一下SSH的集成:

这三大柜架的集已经是老声长谈了,在这里就只是简单的说一下:

首先先将struts添加到项目中,再将Spring加入到项目中,最后将hibernate加入到项目中,在这里将hibernate配置文件中的内容全部在Spring的配置文件applicationContext.xml中进行配置。抱括jdbc,*.hbm.xml。要注意的是在这里我们不再需要Hibernate为我们生成SessionFactory了而是用Spring中的org.springframework.orm.hibernate3.LocalSessionFactoryBean来进行统一的管理。

下面我们将struts和Spring集合到一起,让spring来对action进行统一的管理

我们要在struts-config.xml中加入以下信息

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

在这里你的Spring的配置文件的路可以是相对也可以是绝对的,在这里我把它直接放在了src下,如果你将它放在WEB-INT下则可以这么写:

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

再在struts-config.xml中入一个controller注要是为了让spring来能够自己找的到我们的action。写法为

<controller
        processorClass="org.springframework.web.struts.DelegatingRequestProcessor" />

当我们在struts-context.xml中加入这个后我们便可以将我们的action配置信息中的type=""这一项去掉不用了。然后我们在applicationContext.xml中可以进行action的配置了。在这里要注意的是我们的action在applicationContext.xml配置时我们不要用id,而是改用name属性。这里的name要和我们在struts-config.xml中action的配置中的path=""属性相对应。不要忘记这个"/",也要加进去。如:

struts-config.xml中有一个action配置如下:

<action attribute="registerForm"
            input="/enter/hospital_register/register.jsp" name="registerForm"
            path="/hospital_register" scope="request">
            <forward name="success" path="enter/member/success.jsp" />
 </action>

则我们在applicationContex.xml中可以这样配置

<bean name="/hospital_register" type="action所在的包.action类名">

<为所依赖的接口>

</bean>

当然在里也可以将这个controller去掉不要而是将action的配置信息中的type="action类位置"改为type="org.springframework.web.struts.DelegatingActionProxy"即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
shop >前言:基于ssm分布式开发实现的电商项目(聚合工程) 注:本项目为开源项目,不能用于商业应用,仅供学习。 ### 使用工具: maven(构建项目),svn(版本控制工具),myeclipse(集成开发环境),nginx(反向代理), FastDFS (图片服务器),tomcat(web服务器),zookeeper(集群管理),mysql(数据库) Junit(测试) ### 技术栈: spring,springmvc,mybatis(框架) solr(搜索服务),redis(缓存),easyUI(后台系统页面) ### 数据库设计 tb_user用户表(id,username,password,phone,email,created,updated) tb_item商品表(id,title,sell_point,price,num,barcode,image,cid,status,created,updated) tb_cat商品分类表(id,parent_id,name,status,sort_order,is_parent,created,updated) tb_item_desc商品描述表(item_id,item_desc,created,updated) tb_item_param商品规格参数表(id,item_cat_id,param_data,created,updated) tb_item_param商品规格参数模板表(id,item_id,param_data,created,updated) tb_order订单表(payment,payment_type,post_fee,status,create_time,update_time,payment_time,consign_time,end_time,close_time,shipping_name,shipping_code,user_id,buyer_message,buyer_nick,buyer_rate) tb_order订单商品表(id,item_id,order_id,num,title,price,total_fee,pic_path) tb_order_shipping订单物流表(order_id,receiver_name,receiver_phone,receiver_mobile,receiver_state,receiver_city,receiver_district,receiver_address,receiver_zip,created,updated) tb_content_category商品目录分类表(id,parent_id,name,status,sort_order,is_parent,created,updated) tb_content商品目录表(id,category_id,title,sub_title,title_desc,url,pic,pic2,content,created,updated) ## 分布式系统 ### 商品后台管理系统 ### shop-manager(管理后台) 商品的添加功能: 1.商品类目选择-easyui异步tree控件的使用 2.图片上传(fastdfs+nginx) 3.富文本编辑器使用KindEditor 4.分页使用PageHelper插件,插件是基于mybatis的拦截器接口实现的 商品的展示功能: 1.分页插件的使用PageHelper。 2.easyUIDataGrid的使用 ### 前台系统 ### shop-rest(发布服务) ### shop-search(搜索服务) * 使用solr实现搜索,内容列表使用redis缓存,使用zookeeper管理集群 ### shop-sso (单点登录系统) SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中, 用户只需要登录一次就可以访问所有相互信任的应用系统。它包括 可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。 它是目前比较流行的企业业务整合的解决方案之一。 用户登录: 1、接收用户名和密码 2、校验用户名密码 3、生成token,可以使用UUID 4、把用户信息写入redis,key就是token 5、把token写入cookie。 6、返回登录成功需要把token返回给客户端。 Session共享的问题: 1、tomcat集群配置session复制。如果集群中节点很多,会形成网络风暴。推荐节点数量不要超过5个。 2、分布式架构。拆
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值