<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    張慧的博客

    張慧的博客

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      45 Posts :: 0 Stories :: 24 Comments :: 0 Trackbacks
     1、什么是混淆?為什么要混淆?這個問題不多說明,簡單講,就是為了保護軟件項目的所有權,防止別人反編譯,將代碼打亂,人看著會很費勁,但對計算機執行沒有障礙。 
        2、當前項目的結構:項目采用的框架是ssh(spring、struts2、hibernate)的,其中還用了Annotation 注釋標簽。代碼形如: 
        (1)一個bo的代碼 
    Java代碼  收藏代碼
    1. /** 
    2.  *@preserve all 
    3.  */  
    4. @Entity  
    5. @Table(name = "crm_code_clientSort")  
    6. public class ClientSort  
    7. {  
    8.     @Id  
    9.     @GeneratedValue(generator = "uuidGenerator")  
    10.     @GenericGenerator(name = "uuidGenerator", strategy = "uuid")  
    11.     @Column(length = 32)  
    12.     private String id;//標識  
    13.       
    14.     @Column(length = 6)  
    15.     private String code; //編號  
    16.   
    17.     @Column(length = 20)  
    18.     private String name; //名稱  
    19.       
    20. }  

        (2)action的代碼 
    Java代碼  收藏代碼
    1. /** 
    2.  *@preserve all 
    3.  */  
    4. @Controller  
    5. @Scope("prototype")  
    6. @ParentPackage(value = "abc-default")  
    7. @Namespace("/crm/backlog")  
    8. @Results(  
    9. {       
    10.     @Result(name = "showInfo", location = "/jsp/crm/backlog/showInfo.jsp"),  
    11.     @Result(name = "common", location = "/jsp/crm/backlog/list.jsp"),  
    12.     @Result(name = "addBacklog", location = "/jsp/crm/backlog/addBacklog.jsp"),  
    13.     @Result(name = "updateBacklog", location = "/jsp/crm/backlog/updateBacklog.jsp")  
    14.       
    15. })  
    16. @InterceptorRef("isLogin")  
    17. public class BacklogAction {  
    18.       
    19.     @Resource  
    20.     private CRM_BacklogService cRM_backlogService; //此對象是spring自動注入的,因為加了@Resource標簽  
    21.       
    22.     @Resource  
    23.     private CodeBean codeBean;      
    24.       
    25.     private Object fere;       
    26.     private Backlog dto;   
    27.         //以下略  
    28.   
    29. }  

        (3)service代碼 
    Java代碼  收藏代碼
    1. @Service  
    2. public class UserService  
    3. {  
    4.    @Resource  
    5.    public Dao dao;  
    6.   
    7.    public String getTheNum()  
    8.    {  
    9.       //省略代碼  
    10.       return "";  
    11.     }  
    12.   
    13.   
    14.    /** 
    15.      * @preserve public 
    16.      */  
    17.    public void updateObject(User user)  
    18.    {  
    19.       dao.updateObject(user);  
    20.    }  
    21.       
    22.    //********省略其他  
    23. }  


        3、混淆介紹。 
        (1)整體混淆級別設置。設置為public的。對所有的代碼混淆。具體配置文件我使用方法,參見jocky的說明文件,附件的壓縮包中有。 
    Xml代碼  收藏代碼
    1. <property name="jocky.scramble.level" value="public"/>  

        (2)對于不需要混淆的類,加上注釋 @preserve all 將其除外。如上面的bo、action代碼。本項目中不能混淆的類有: 
        A、action類,可能是由于struts2管理的原因,如果混淆,項目會報錯,找不到相應的action. 
        B、bo類,該類是和數據庫表一一對應的,改變了,就亂了。因為用的是hibernate自動映射的。 
        C、其他會被jsp頁面中引用到的類,如dto類,工具類,dwr類等。 
        (3)對于可以混淆的類,但不能混淆的方法,加上@preserve public 注釋。如上面的service類。因為涉及到事務的控制,如果方法名被混淆了,在方法內改變數據的某些操作時,就會報錯。本項目中在sping.xml內配置了所有service方法中,只有以save,update,delete開頭的方法,才能改變數據庫,否則會報錯。參見如下: 
    Xml代碼  收藏代碼
    1. <!-- 配置事務的傳播特性 -->  
    2. <tx:advice id="txAdvice" transaction-manager="transactionManager">  
    3.     <tx:attributes>  
    4.         <tx:method name="save*" propagation="REQUIRED" />  
    5.         <tx:method name="update*" propagation="REQUIRED" />  
    6.         <tx:method name="delete*" propagation="REQUIRED" />  
    7.         <tx:method name="*" read-only="true" />  
    8.     </tx:attributes>  
    9. </tx:advice>  
    10.   
    11.   
    12. <!-- 那些類的哪些方法參與事務 -->  
    13. <aop:config>  
    14.     <aop:pointcut id="commonServiceMethod" expression="execution(* com.abc.domain.common.service.*.*(..))" />  
    15.     <aop:pointcut id="khServiceMethod" expression="execution(* com.abc.domain.*.*.inside.service.*.*(..))" />  
    16.       
    17.     <aop:advisor pointcut-ref="commonServiceMethod" advice-ref="txAdvice" />  
    18.     <aop:advisor pointcut-ref="khServiceMethod" advice-ref="txAdvice" />  
    19. </aop:config>  

    posted on 2012-07-08 01:46 張慧 閱讀(3549) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲AV日韩AV无码污污网站| 国产亚洲婷婷香蕉久久精品| 免费看搞黄视频网站| 久久久久国产精品免费看| 羞羞网站免费观看| 亚洲第一成年免费网站| 国产日本亚洲一区二区三区| 91亚洲精品视频| 亚洲激情中文字幕| 亚洲AV无码专区在线播放中文| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲国产片在线观看| 久久国产亚洲精品无码| 亚洲国产成人久久精品影视| 亚洲色欲久久久综合网| 亚洲中文字幕在线第六区| 西西人体大胆免费视频| 国产成人精品免费久久久久| 久久免费精彩视频| 午夜不卡久久精品无码免费| 99re在线这里只有精品免费| 最近免费中文字幕大全免费版视频| 中文在线免费看视频| 日本免费一区二区三区四区五六区 | 亚洲日本一区二区三区在线| 亚洲av午夜成人片精品网站| 亚洲国产精品久久网午夜| 亚洲乱码无人区卡1卡2卡3| 国产免费的野战视频| 久久免费公开视频| 91青青国产在线观看免费| 久九九精品免费视频| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 成年人免费网站在线观看| 亚洲国产综合精品中文字幕| 亚洲网站在线观看| 免费一级毛片在线播放放视频| 污视频在线免费观看| 亚洲第一黄色网址| 亚洲情A成黄在线观看动漫软件 | 亚洲综合无码精品一区二区三区|