转:淘宝技术发展(Java时代:脱胎换骨)

转:淘宝技术发展(Java时代:脱胎换骨)
我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来。后来我看了很多系统的架构,发现这个言论基本成立。那么反观淘宝前面的两个版本的架构,你看哪个比较美? 显然第一个比较好看,后面那个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。2004年初,SQL Relay的问题解决不了,数据库必须要用Oracle,那从哪里动刀?只有换开发语...

Ubuntu开发Struts2应用(7、完成增删查改操作)

Ubuntu开发Struts2应用(7、完成增删查改操作)
由于注重的是整合,所以这里没有写得很完善,没有事务处理,也没有处理业务逻辑的service层等,更适合初学者学习。 1、接口UserDAO以及实现类UserDAOImpl。主要是hibernate和spring的整合,提供数据增删查改的操作。 UserDAO.java package com.linuxsight.dao; import java.util.List; public interface UserDAO { public void insert(Object o) throws Exception; public List<Object> list() th...

Ubuntu开发Struts2应用(6、整合hibernate和spring)

Ubuntu开发Struts2应用(6、整合hibernate和spring)
1 准备数据库。由于用到了hibernate,自然少不了数据库,我们这里建立一个简单的表以做演示,ubuntu下的mysql我们已经安装好了,用户名root,密码123456。 把s2sh.sql放到/home/linuxsight目录中 linuxsight@linuxsight-ODM:~$ pwd /home/linuxsight linuxsight@linuxsight-ODM:~$ mysql -uroot -p123456 < s2sh.sql s2sh.sql create database s2sh character set 'utf8' collate 'utf8_general_ci'; ...

Ubuntu开发Struts2应用(5、自定义拦截器)

Ubuntu开发Struts2应用(5、自定义拦截器)
Struts2为我们提供了丰富的拦截器,而实现自定义拦截器也是容易的一件事。 拦截器必须是无状态的,原因是Struts2不能保证为每一个请求或者action创建一个实例,所以如果拦截器带有状态,会引发并发问题。 实际应用中处理权限问题是常见的,下面就以一个拦截器来判断处理用户是否登录而有权限去执行action的内容。 LoginInterceptor.java package com.linuxsight.interceptor; import com.opensymphony.xwo...

Ubuntu开发Struts2应用(4、文件上传)

Ubuntu开发Struts2应用(4、文件上传)
文件上传这个功能在项目应用是非常常见的,这节说说Struts2如何实现文件上传。 Struts2使用开源项目Apache Jakarta Commons FileUpload和内建的FileUploadInterceptor拦截器实现文件上传 下面介绍代码: FileUploadAction    package com.linuxsight.action; import java.io.File; import org.apache.commons.io.FileUtils; import org.apache.struts2.ServletActionContext; import com.opensymphony.x...

Ubuntu开发Struts2应用(3、知识点记录)

Ubuntu开发Struts2应用(3、知识点记录)
    本节记录了一些struts2的知识点。 1、设置开发调试 struts.properties struts.devMode = true 添加struts2-config-browser-plugin-2.3.1.jar 地址访问:http://localhost:8080/struts2T1/config-browser/index.action 使用标签<s:debug/>显示 地址访问: http://localhost:8080/struts2/linuxsight.action?debug=xml http://localhost:8080/struts2/linuxsight.action?debug=console 2、在stru...

Ubuntu开发Struts2应用(2、第一个程序)

Ubuntu开发Struts2应用(2、第一个程序)
本节介绍在ubuntu上开发的一个struts2应用。 新建一个web项目,利用myeclipse9.1给我们提供的struts2支持,搭建环境。 这里注意不要勾选多余的jar包,我们只需要core myeclipse9.1集成的Sturts版本是struts2.2.1 代码如下: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-...

Ubuntu开发Struts2应用(1、环境搭建MyEclipse+MySQL)

Ubuntu开发Struts2应用(1、环境搭建MyEclipse+MySQL)
本系列文章带来的是在Ubuntu11.10下开发Struts2程序学习过程所记录的滴滴点点,当中所写的也许不能算是学习的好教程,但所涉及的知识点相信会对学习Struts2有一定的帮助。 首先是在Ubuntu11.10搭建开发环境,相信大部分开发者都是在XP下完成的,比较少涉及Linux平台,如果你是用Ubuntu系统的,那可以看看本节内容。 1、安装myeclipse(由于myeclipse已经自带了Tomcat,所以我们不需要再去下载Tomcat了。)...

MyEclipse 9.x/8.x/7.x/6.x下载附注册码

MyEclipse 9.x/8.x/7.x/6.x下载附注册码
  目前MyEclipse的最新版已经到达9.1,虽然我不建议用最新版的MyEclipse,目前本人开发依然用最初的6.5.但下载MyEclipse也比较麻烦,因为官网下载被和谐,所以我觉得有必要把下载地址收集一下,以便需要时可以下载。 这里我收集了包括MyEclipse9.1/9.0/8.6/8.0/7.5/7.1/7.0/6.6/6.5各个版本的下载: MyEclipse 9.1 下载地址: Windows http://downloads.myeclipseide.com/downloads/products/eworkbench/he...

解决org.hibernate.hql.ast.HqlToken

解决org.hibernate.hql.ast.HqlToken
  今在启动项目的时候出现了一个问题: CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken 项目是spring+hibernate+struts 系统是windows 2008    容器是weblogic10.3 不知是否和环境有关,项目移植过来就出现问题。 解决方法,在hibernate的配置文件加上:(由于项目是SSH组合,所以代码应加在spring的配置文件appicationContext.xml里。) <prop key="hibernate.query.fac...