设计的思考

设计的思考
设计的模式林林总总,各种教条到处被津津乐道。其中的精髓一眼望去,要么显而易见,要不藏山露水,百思不得其解。
近日的一个任务是完成一个Spring下的异常设计。
要求很简单:设计异常管理框架。
历程:
    1,普遍的处理
        1.1 异常捕获。利用Jsp2.0规范中的error-page配置,写一个Servlet,该Servlet中,通过
                Throwable exception = (Throwable)httpServletRequest.getAttribute(“javax.servlet.error.exception”);
              提取异常对象,然后根据类型分析异常信息(见2)
        1.2 异常信息
             提取异常的堆栈信息,判断异常类的类型,并国际化.
        1.3 异常日志
             在异常构造函数中写日志,不显式调用
        1.4 通用异常
             目的是将checkedException转成uncheckedException,同时构造函数不写两次
    2, 基于Spring的异常处理
        2.1 由Spring的Servlet配置转发
             Spring的MVC学习
        2.2 异常信息
        2.3 日志
            日志分为“异常日志”和“操作日志”。由Log4j配置3个记录器,操作日志记载到JDBC
            一个日志工厂,获取单例的异常日志和单例的操作日志
        2.4 通用异常
            基本同1.4。做了国际化处理,三个构造函数,支持多种异常策略。
        2.5 通用异常处理
            和通用异常配合,做国际化输出
        2.6 国际化
            国际化在java代码中获取国际化字符,做为参数传输。中文要转码
            国际化时指向国际化的bean配置文件
    3. 简约的异常处理
        3.1 由Spring的contextloader直接读取国际化文件
        3.2 通用异常类的简约
            只做异常该做的事情,不去分析异常的类型。
            做:记录异常,传递国际化的Key        
        3.3 各个类与页面都将功能明确
            通用异常类:只负责多层抛和日志
            通用异常类的处理页面:国际化
            默认异常的处理页面:根据异常得名子获取国际化信息
        3.4 国际化信息
            异常的类型不做判断,而是将异常得名子做为国际化的Key
总结发展:
    从一锅粥变成了2个烤串(为何叫做烤串,我也不知道)    
    从最开始的想无所不能,变成各自独立,功能清晰。
    从到处插手中跳出



阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页