我的Blog我做主^_^

          走向一條通往JAVA的不歸路...

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評(píng)論 :: 0 Trackbacks
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(10)

          隨筆分類

          隨筆檔案

          文章分類

          新聞分類

          收藏夾

          友情

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          一、
          package com.spring.aop.test.aspectj.test_2;

          import java.util.Date;

          /**
           * 管理員
           * @author Administrator
           *
           */
          public class Operator {

           private Integer id ;
           private String name ;
           private String password ;
           private Integer popedom ;
           private Date loginTime ;
           ..set()/get().... 
          }

          二、

          package com.spring.aop.test.aspectj.test_2;

          import java.util.Date;

          /**
           * 新聞?lì)悇e信息
           * @author Administrator
           *
           */
          public class NewsType {

           private Integer id ;
           private String typeName ;
           private String desc ;
           private Operator operator ;
           private Date addTime ;
           
           public NewsType(){}
           ...set()/get()...
          }

          三、

          package com.spring.aop.test.aspectj.test_2;

          import java.util.List;

          public interface BasicDao<T> {

           boolean save(T t) ;
           boolean delete(T t) ;
           boolean update(T t) ;
           T get(Integer id) ;
           List<T> get() ; 
          }

          四、

          package com.spring.aop.test.aspectj.test_2;

          import java.util.List;

          public class NewsTypeDaoImpl implements BasicDao<NewsType> {

           public boolean delete(NewsType t) {
            
            System.out.println("=======刪除NewsType對(duì)象=======");
            return true;
           }

           public NewsType get(Integer id) {

            System.out.println("=======獲取一個(gè)NewsType對(duì)象=======");
            return new NewsType();
           }

           public List<NewsType> get() {
            
            System.out.println("======獲取一個(gè)NewsType對(duì)象列表======");
            return null;
           }

           public boolean save(NewsType t) {
            
            System.out.println("======保存NewsType對(duì)象======");
            return true;
           }

           public boolean update(NewsType t) {
            
            System.out.println("======更新NewsType對(duì)象======");
            return true;
           }

          }


          五、

          package com.spring.aop.test.aspectj.test_2;

          import java.io.*;
          import java.util.Date;


          public aspect NewsTypeAspect {

           private static java.text.SimpleDateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd H:m:s");
           
           //定義操作時(shí)間切入點(diǎn)
           pointcut operatorTime(): execution(* *.*());
           //定義保存切入點(diǎn)
           pointcut saveNewsType(NewsTypeDaoImpl dao): target(dao)&&execution(boolean NewsTypeDaoImpl.save(NewsType));
           //定義刪除切入點(diǎn)
           pointcut deleteNewsType(NewsTypeDaoImpl dao): target(dao)&&execution(boolean NewsTypeDaoImpl.delete(NewsType));
           
           //輸出操作開(kāi)始時(shí)間
           before(): operatorTime(){
            
            System.out.println("用戶操作開(kāi)始時(shí)間:"+df.format(new Date()));
           }
           //保存時(shí),判斷用戶是否擁有保存權(quán)限
           boolean around(NewsTypeDaoImpl dao): saveNewsType(dao){

            NewsType type = (NewsType)thisJoinPoint.getArgs()[0];
            if(type.getOperator().getPopedom() > 0){
             
             System.out.println("====開(kāi)始保存NewsType對(duì)象====");
             System.out.println("保存時(shí)間:"+df.format(new Date()));
             return proceed(dao);
            }else{
             
             System.out.println("你暫時(shí)還沒(méi)有保存NewsType對(duì)象的權(quán)利");
             System.out.println("你的權(quán)限為:"+type.getOperator().getPopedom());
             return false;
            }
           }
           
           //刪除時(shí),要提示用戶是否真的要?jiǎng)h除此對(duì)象
           boolean around(NewsTypeDaoImpl dao): deleteNewsType(dao){
            
            boolean flag = false;
            try{
             
             NewsType type = (NewsType)thisJoinPoint.getArgs()[0];
             
             if(type.getOperator().getPopedom() > 0){
              
              BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
              System.out.println("開(kāi)始刪除操作......");
              System.out.println("Enter a operator<Y/N>:");
              String info = stdin.readLine();
              
              if(info.indexOf("Y") != -1){
               
               System.out.println("可以刪除......");
               flag = proceed(dao);
               if(flag){
                
                System.out.println("=======刪除Newstype對(duì)象成功=======");
               }else{
                
                System.out.println("=======刪除NewsType對(duì)象失敗=======");
               }
              }else{
               
               System.out.println("數(shù)據(jù)未被刪除......");
              }
             }else{
              
              System.out.println("你沒(méi)有刪除NewsType對(duì)象的權(quán)限......");
             }
            }catch(Exception e){
             
             System.out.println(e.getMessage());
            }
            return flag;
           }
           
          }

          六、

          package com.spring.aop.test.aspectj.test_2;

          public class NewsTypeDaoTest {

           public static void main(String[] arg){
            
            Operator op = new Operator();
            op.setId(1);
            op.setName("admin");
            op.setPassword("password");
            op.setPopedom(1);
            
            NewsType type = new NewsType();
            type.setId(1);
            type.setOperator(op);
            type.setTypeName("新聞");
            
            NewsTypeDaoImpl dao = new NewsTypeDaoImpl();
          //  if(dao.save(type)){
          //   
          //   System.out.println("save ok......");
          //  }else{
          //   
          //   System.out.println("save failed......");
          //  }
            
            if(dao.delete(type)){
             
             System.out.println("delete NewsType succ......");
            }else{
             
             System.out.println("delete NewsType failed......");
            }
           }
          }



          posted on 2007-04-05 19:02 java_蟈蟈 閱讀(306) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 广元市| 修武县| 丽江市| 南昌市| 吉安市| 精河县| 天长市| 定安县| 肥乡县| 大悟县| 彝良县| 庄河市| 崇仁县| 义乌市| 墨脱县| 安国市| 伊宁市| 五指山市| 安福县| 丹东市| 腾冲县| 淮滨县| 巢湖市| 乌兰浩特市| 武胜县| 岱山县| 九龙坡区| 锡林浩特市| 无棣县| 棋牌| 襄城县| 泸州市| 英吉沙县| 扶沟县| 扎囊县| 左云县| 应城市| 驻马店市| 定安县| 卢氏县| 吉林市|