最爱Java

书山有路勤为径,学海无涯苦作舟

      小弟最近正在找工具,闲来无事就用Extjs编写一个求职管理的小工具,来记录曾发送简历过的公司。特发上来请高手指点一下。
      相关说明:
       1. 页面还是很简单的,就一个,如下。“新建职位”和“查询职位”不用多说了吧?“发送简历”就是把数据库中没有发送的职位一个一个发送简历。由于个人使用,所有就没必要选哪个发哪个不发了吧?不发的你也没必要添加进来啊!
        

2. 配置
     如何建立数据库什么的,就不说了。反正就一个表,sql也有。applicationContext.xml文件,知道这个文件的基本都会玩,记得配置数据库哦!还有一个就是和配置简历有点关系。在<bean id="mailManager" class="com.job.mail.MailManager">里面你需要配置一下读取你简历的目录,发送邮件的一些smtp信息。上述配置好基本就可以了。这里要说一下,在我本地,MailManager读的是和applicationContext.xml同一目录下的conf目录,该目录下有两个properties文件,系统就认为我有两种类型的简历了。在添加职位的时候可以选发送哪种简历。而properties文件中是真正配置如何发送邮件的信息。由于使用apache的email包,所以配置项条目是一样的。

     特别希望大家对我这个工具提出意见和建议,谢谢!

下载文件://Files/zhengzhili/job.rar (由于只能上传4M的附件,所以没法上传引用库,请自行下载,所用到的引用库为spring,struts和apache的common.mail)
posted @ 2008-12-01 17:15 Brian 阅读(1540) | 评论 (2)编辑 收藏

附带示例 

也可以从http:/www.oreilly.com.cn/book.php?bn=7-302-14011-1查询

posted @ 2008-08-29 16:14 Brian 阅读(1598) | 评论 (12)编辑 收藏
一. 捕获何时执行通知
        
使用adviceexecution()切入点。adviceexecution()切入点的语法如下:
        pointcut <pointcut name>() : adviceexecution();
package com.aspectj;

public aspect AdviceExecutionRecipe 
{
   
/*
       Specifies calling advice whenever advice is executed
   
*/

   pointcut adviceExecutionPointcut() : adviceexecution();

   
// Advice declaration
   before() : adviceExecutionPointcut()
   
{
      System.out.println(
         
"------------------- Aspect Advice Logic --------------------");
      System.out.println(
"In the advice picked by ExecutionRecipe");
      System.out.println(
         
"Signature: "
            
+ thisJoinPoint.getStaticPart().getSignature());
      System.out.println(
         
"Source Line: "
            
+ thisJoinPoint.getStaticPart().getSourceLocation());
      System.out.println(
         
"------------------------------------------------------------");
   }

}


二. 排出作为通知执行结果的连接点
三. 在发出通知时展示原始连接点
        
添加JoinPoint标识符到切入点定义中。
package com.aspectj;

import org.aspectj.lang.JoinPoint;

public aspect AdviceExecutionRecipe 
{
   
/*
       Specifies calling advice whenever advice is executed
   
*/

   pointcut adviceExecutionPointcut(JoinPoint originalJoinPoint) : adviceexecution() 
&& args(originalJoinPoint) && !within(AdviceExecutionRecipe);

   
// Advice declaration
   before(JoinPoint originalJoinPoint) : adviceExecutionPointcut(originalJoinPoint)
   
{
      System.out.println(
         
"------------------- Aspect Advice Logic --------------------");
      System.out.println(
"In the advice picked by AdviceExecutionRecipe");
      System.out.println(
         
"Signature: "
            
+ thisJoinPoint.getStaticPart().getSignature());
      System.out.println(
         
"Source Line: "
            
+ thisJoinPoint.getStaticPart().getSourceLocation());
      
      System.out.println(
            
"Advised Advice's Join Point Signature: "
               
+ originalJoinPoint.getSignature());
      
      System.out.println(
         
"------------------------------------------------------------");
   }

}


 
posted @ 2008-08-29 16:09 Brian 阅读(370) | 评论 (0)编辑 收藏
     摘要: 一. 应用开发指导和规则         想通过提供一种在编译时强制执行的策略,来控制在应用程序中允许哪些程序构造。可使用Border Controller(边界控制器)面向方面设计模式声明代码内的一组区域。当依据策略模式在方面中为项目声明任何顶级规则时,重用这些区域。可以扩展项目的顶级策略,为应用程序的特定区域特殊...  阅读全文
posted @ 2008-08-29 15:47 Brian 阅读(285) | 评论 (0)编辑 收藏
     摘要:         应用程序级方面会影响软件相当多的区域,他们通常是软件的特征,将会影响应用程序中的许多类。本节介绍系统级的横切关注点集合,其中可以使用AspectJ更好地实现它们的特征。本节可以分成两类:被动方面和主动方面。         ...  阅读全文
posted @ 2008-08-29 14:24 Brian 阅读(438) | 评论 (0)编辑 收藏
     摘要: 一.验证传递给方法的参数         创建一个模块化参数检查逻辑的方面。声明一个切入点,用于捕获其中将检查参数的方法的执行。切入点应该把参数展示给相应的通知使得它可以执行检查。         依赖于参数检查的结果,通知将继续执行方...  阅读全文
posted @ 2008-08-29 11:18 Brian 阅读(335) | 评论 (0)编辑 收藏
     摘要: 一.实现观察者模式         观察者模式允许设计者创建对象之间的依赖关系,使得如果一个对象的状态发生变化,则通知另一个对象,并且它可能会产生相应的行动。 package com.aspectj; import java.util.List; import java.uti...  阅读全文
posted @ 2008-08-29 10:04 Brian 阅读(303) | 评论 (0)编辑 收藏
     摘要: 一.实现复合模式         复合模式能够把集合中的对象组合在一起,并且以某种方式与整个组交互,这种交互式类似于同组中的单个成员进行交互。 package com.aspectj; import java.util.Enumeration; import java.util...  阅读全文
posted @ 2008-08-28 10:49 Brian 阅读(1046) | 评论 (0)编辑 收藏
     摘要: 一.实现单件模式         单件模式允许把类定义成具有应用程序内的一个运行时实例。通常,通过不给特定类提供默认构造函数来实现单件。 package com.aspectj; import java.util.Hashtable; public abstract&nbs...  阅读全文
posted @ 2008-08-27 11:00 Brian 阅读(1123) | 评论 (0)编辑 收藏
        本章节说明了如何使用静态横切技术,以静态方式使用AspectJ中的方面把行为和接口引入现有的类中。使用这些技术,可以扩展类来实现接口,从新的父类扩展类,引入新方法和属性,减轻说发生异常的影响,以及继承多个基类。
一.扩展现有的类
package com.aspectj;

public aspect ExtendClassRecipe {
    
private int MyClass.newVariable = 20;
    
    
public int MyClass.bar(String name) 
        System.out.println(
"In bar(String name) , name:" + name);
        
return this.newVariable; 
    }

}

 
        示例中将属性newVariable和方法bar(String)添加到了MyClass类中。

二.声明类之间的继承关系
    使用declare parents语句,指定特定的类是从另一个类扩展而来。
    以下代码说明了如何为MyClass类指定新的继承关系
package com.aspectj;

public aspect IntroduceInheritanceRecipe {
    declare parents:MyClass 
extends AnotherClass;
}

三.使用方面实现接口
    使用declare parents语句,指定特定的类实现特定的接口。
package com.aspectj;

public aspect ImplementInterfaceRecipe {
    declare parents:MyClass 
implements MyInterface;
}
    把接口应用于现有类的能力允许通过接口类型的引用那个类的对象,如:
//Create an instance of MyClass
MyInterface myObject = new MyClass();
//
//Work with the interface reference
myObject.foo(1,"Russ");

四.声明默认的接口实现
package com.aspectj;

public aspect DefaultInterfaceImplementationRecipe {
    declare parents:MyClass 
implements MyInterface;

    
//public void MyInterface.bar(String name) {
        
//System.out.println("bar(String) called on " + this);
    
//}
}

五.减轻异常的影响
    使用declare soft语句,可以指定一组应该减轻其影响的异常--也就是说,在通过特定连接点选择的连接点上引发这些异常时,将其转换成未捕获的异常。
    示例中说明了减轻在void foo()方法上引发的ExcepionA异常的影响,使得该方法的用户不必关心如何处理这个异常。
package com.aspectj;

public aspect SoftExceptionRecipe {
    pointcut callPointCut() : call(
void MyClass.foo());
    declare soft : ExceptionA : callPointCut();
}

六.扩展编译
分别使用declare error或declare warning语句,指定应该引发编译器错误或警告的条件。
示例说明了如何声明一个新的错误和警告,如果在正在编译的应用程序内发现指定的条件,编译器就会引发该错误或警告。
package com.aspectj;

public aspect CompilaionAdviceRecipe {
    declare error:call(
void ProtectedAccessClass.setValue(int))  : "Must only set the ProtectedAccessClass.value from a MyClass object";
    
    declare warning:call(
void ProtectedAccessClass.getValue()) :"Should only be reading ProtectedAccessClass.value from a MyClass object";
}

posted @ 2008-08-27 09:31 Brian 阅读(465) | 评论 (0)编辑 收藏
仅列出标题
共5页: 上一页 1 2 3 4 5 下一页 

公告


导航

<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

常用链接

留言簿(4)

随笔分类

随笔档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜