`
阅读更多
最近比较忙,工作上和生活上都是,小结下:
1.最近主要工作是接手了一些邮箱系统的开发工作,JavaMail倒是越来越熟悉了,碰到一个问题需要注意下,使用imap协议访问邮件服务器,我在本机jboss和测试环境websphere上测试正常,一放到生产环境下就出问题,后浪费我周末半天的时间检查才发现,imap默认的LOGIN登录是使用文本方式登录,不需要认证,在本机和测试环境都普通的LOGIN方式(有安全隐患的方式),在正式环境的环境变量却设置为PLAIN认证,导致登录失败,改正下:
<!---->    props.setProperty("mail.imap.auth.plain.disable""true");
禁止掉认证即可,还有一些变量设置可以在j2ee api doc里查到。说到底还是对协议的不熟悉就投入开发。


2.过去办公自动化系统的文档显示局限在word类型,今天弄了个新的ActiveX控件,自动更新或者安装ActiveX控件,只要设置下CODEBASE即可,比如:
<!----><OBJECT id="AutoVueX" classid="clsid:B6FCC215-D303-11D1-BC6C-0000C078797F" CODEBASE="http://localhost/xxxx"./>

3.读很多开源项目,动态加载配置文件是一个常见的技巧,最近也应用了下,没什么技术含量,仅记录下。原理就是通过判断File类的lastModified()得到修改时间与内存中保存的最近修改时间进行比较,如果大于就读入配置文件重新设置配置信息:
<!---->private static void checkConfigModify() {
        File file 
= new File(MailConnectionManager.class.getResource(
                MailConstants.CONFIG_FILE).getFile());
        
//如果有修改,重新加载配置文件信息
        if (file.lastModified() > MailConstants.last_modified) {
            MailConstants.last_modified 
= file.lastModified();
            setConfig();
        }
    }

    
private static void setConfig() {
        InputStream is 
= null;
        
try {
            Properties properties 
= new Properties();
            is 
= MailConnectionManager.class
                    .getResourceAsStream(MailConstants.CONFIG_FILE);
            properties.load(is);
            MailConstants.USERNAME 
= properties.getProperty("username");
            MailConstants.HOST 
= properties.getProperty("host");
            MailConstants.PASSWORD 
= properties.getProperty("password");

            System.out
                    .println(
"配置文件被修改,重新加载配置文件成功!");
            StringBuffer sb 
= new StringBuffer("username:");
            sb.append(MailConstants.USERNAME).append(
"   host:")
                    .append(
"host:").append(MailConstants.HOST);
            
if (MailConstants.PASSWORD != null)
                sb.append(
"     ").append("password:not null");
            
else
                sb.append(
"     password:null");
            System.out.println(sb.toString());
        } 
catch (Exception e) {
            e.printStackTrace();
        } 
finally {
            
if (is != null)
                
try {
                    is.close();
                } 
catch (IOException e2) {
                    e2.printStackTrace();
                }
        }
    }

比较值的注意的就是Class类的getResource和getResourceAsStream方法,当然也可以使用ResourceBundle

4.最近将项目中过去别人写的简单工作流引擎分析了一下,顾名思义,是很简单,采用数据库作为流程定义的存储介质,流程定义也是在web上操作,仅支持顺序、选择、并行路由,简单的或、与条件选择,因为只是作为没有复杂流程的公文流转系统,倒是符合客户要求。模型也是基于状态机。复杂的条件运算是没办法做到,没有采用BeanShell的脚本语言也是个原因。Jruby到1.0了,今天下载了,有空看看。工作流采用Petri网建模是趋势,可惜那本书我还没读完。

5.spring如何得到FactroyBean本身?我们知道实现FactroyBean接口的getObject方法,返回的就是getObject返回的bean,而如何得到FactoryBean本身呢?答案是加上一个符号&
<!---->factory.getBean("&TestFactoryBean");


6.SICP读到2.2节,准备等习题全做完了再一起发上来,忙,读的慢了。老婆的堂妹来了,租的房子只有一张床,只在这地方呆一年,可不想再买张床,我只好回公司宿舍!-_-
废话不说,回家了。





dennis 2007-06-11 19:45 发表评论
分享到:
评论

相关推荐

    svm知识小结

    ### 支持向量机(SVM)知识小结 #### 一、概念 **1. SVM(支持向量机)** 支持向量机(Support Vector Machine, SVM)是一种监督学习模型,主要用于分类和回归分析。SVM的核心思想是通过寻求结构化风险最小化来提高...

    新精通版六年级下册小学英语 Unit 2 单元知识点小结.docx

    2. **数量和一致性**:在 There be 句型中,be 动词的形式应与最近的主语保持一致,例如:"There are a lot of trees and flowers in the park." 学生需要理解这一规则并能运用到实际造句中。 3. **询问地点**:使用...

    Linux环境下段错误的产生原因及调试方法小结

    借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存...

    Linux命令小结

    ### Linux命令小结 #### 一、Linux图形界面与命令行界面切换 在Linux系统中,用户可以在图形用户界面(GUI)与纯命令行界面(CLI)之间进行切换。这对于熟悉命令行操作的用户来说非常方便,特别是对于系统管理任务...

    ISPF操作小结

    ### ISPF操作小结 #### ISPF/PDF功能键 ISPF/PDF 是 IBM 主机环境下的一种图形化用户界面工具,用于辅助用户管理和编辑大型主机上的数据集等资源。掌握其快捷键对于提高工作效率至关重要。 - **PF1:HELP帮助键**...

    最近看的关于推荐系统方面的论文小结.pptx

    ### 关于推荐系统方面的论文小结 #### 一、LDA for User Recommendation - **背景与动机**:潜在狄利克雷分配(Latent Dirichlet Allocation, LDA)最初被设计用于文档主题建模,它能够从文本数据中提取出主题分布...

    jquery 用法小结

    jQuery 遍历方法jQuery 提供了一系列遍历方法,如 children(), closest(), parents(), siblings() 等,用于查找元素的子元素、最近的祖先元素等。例如,找到所有 p 元素的直接子元素: $("p").children() jQuery ...

    韩顺平玩转oracle学习小结

    ### 韩顺平玩转Oracle学习小结 #### 1. Oracle基础介绍 ##### 1.1 基本概念 **实例**: 在Oracle中,“实例”指的是数据库中的相关进程被启动并加载到内存中形成的一个整体。这些进程协同工作以支持数据库的正常...

    jQuery小结.rar

    《jQuery小结》 在Web开发领域,jQuery是一款极为重要的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互。本篇文章将深入探讨jQuery的核心知识点,包括选择器与筛选方法、样式操作、效果展示、DOM...

    数据库备份小结

    3. 差异备份:与增量备份类似,差异备份也只记录自上次完全备份后改变的数据,但与增量备份的区别在于,它始终基于最近的完全备份。 二、备份策略 1. 定期备份:根据业务需求设置定期备份,如每日、每周或每月一次...

    MATLAB知识小结.docx

    ### MATLAB知识小结 #### 一、MATLAB基础概念与常用永久变量 MATLAB是一种广泛应用于工程计算、科学计算及数据分析领域的高级编程语言与交互式环境。为了更好地理解和使用MATLAB,了解一些基础概念和常用永久变量...

    MongoDB 语法使用小结

    - `db.getLastError()` 和 `db.getLastErrorObj()`:检查最近一次操作的错误信息。 - `db.getMongo()`:获取当前服务器连接对象。 - `db.removeUser(username)`:从数据库中删除用户。 - `db.repairDatabase()`:...

    cdl文件转成schematic小结.docx

    CDL 文件转换为 Schematic 小结 本文主要是对最近学习的用 ic5141 将 smic035 网表转换原理图的总结。下面是导入 CDL 的步骤: 1. File -&gt; Import -&gt; CDL,弹出 CDL In 界面。 2. Parameter File:相当于模板文件...

    大学生自我评价小结英语.docx

    【大学生自我评价小结英语】 自我评价是个人成长与发展的必要环节,对于大学生而言,它不仅反映了自己的学术成就,还涵盖了个人品质、兴趣爱好、社交能力等多个方面。以下是对两个英语自我介绍段落的详细解读: 1....

    sift特征提取算法小结

    在尺度空间中寻找极值点(极大或极小值点),这些极值点通常对应于图像中的显著特征点。 **高斯滤波器**: 高斯滤波器是一种常用的线性平滑滤波器,用于图像去噪和平滑处理。高斯滤波器的数学表达式为: \[ G(x, y,...

    【计算机专业-Andorid项目源码100套之】Android异步加载图像小结 (含线程池,缓存方法)

    本资料包“Android异步加载图像小结(含线程池,缓存方法)”正是针对这一主题进行深入探讨的项目源码集合,适合Android开发者学习和参考。 首先,我们要理解异步加载图像的基本原理。在Android中,通常会使用...

    计算几何常用算法小结

    6. **求最近点和交点**:可以使用距离公式和线段交点的计算方法来找到最近点和交点坐标。 7. **凸包**:凸包是一组点中包围所有点的最小凸多边形,求凸包的算法如 Graham's Scan 或 Jarvis March。 计算几何的算法...

    BW 系统操作部分快捷操作小结

    ### BW系统操作部分快捷操作小结 #### 一、后台执行处理链 在BW系统中,后台执行处理链是一项常用的操作。它可以帮助我们自动化数据加载流程,提高数据处理效率。 - **SE37**: 通过该事务代码可以访问程序调试器...

    分类算法小结.docx

    分类算法是数据挖掘和机器学习中的核心部分,包括决策树、K最近邻法、人工神经网络和贝叶斯分类等。这些算法各有优缺点,适用于不同的场景。决策树以其易理解性和处理不同类型数据的能力受到青睐,但可能面临过拟合...

Global site tag (gtag.js) - Google Analytics