I want to fly higher
          programming Explorer
          posts - 114,comments - 263,trackbacks - 0
          1.項(xiàng)目地址
              https://github.com/spring-projects/spring-loaded

          2.介紹
              Spring Loaded is a JVM agent for reloading class file changes whilst a JVM is running. It transforms classes at loadtime to make them amenable to later reloading. Unlike 'hot code replace' which only allows simple changes once a JVM is running (e.g. changes to method bodies), Spring Loaded allows you to add/modify/delete methods/fields/constructors. The annotations on types/methods/fields/constructors can also be modified and it is possible to add/remove/change values in enum types.

          3.小試牛刀
              1.下載spring-loaded:    
                  http://repo.spring.io/simple/libs-release-local/org/springframework/springloaded/1.2.3.RELEASE/springloaded-1.2.3.RELEASE.jar

              2.代碼示例(eclipse運(yùn)行)
          package com.mavsplus.example.springloaded;

          import java.util.concurrent.TimeUnit;

          /**
           * <a href="https://github.com/spring-projects/spring-loaded"></a>
           * 
           * @author landon
           * @since 1.8.0_25
           
          */
          public class SpringLoadedExample {

              public static void main(String[] args) throws Exception{
                  Reload reload = new Reload();

                  while (true) {
                      reload.load();
                      
                      TimeUnit.SECONDS.sleep(3);
                  }
              }

              public static class Reload {

                  public void load() {
                      System.out.println("load!");
                  }
              }
          }

              3.運(yùn)行配置VM arguments

              
                  PS:Maven工程,springloaded-1.2.3.RELEASE.jar放在了src/main/resources目錄

                  4.運(yùn)行:
                      程序每隔3s輸出load

                  5.直接修改load方法的輸出,輸出reload,直接保存即可,神奇的事情出現(xiàn),我們?cè)?/span>未重啟application的情況下,進(jìn)行了代碼的reload

                      





          4.后續(xù)會(huì)結(jié)合源代碼以及更深層次的例子進(jìn)行剖析

          posted on 2015-06-19 14:35 landon 閱讀(5384) 評(píng)論(3)  編輯  收藏 所屬分類: JVMHotSwap

          FeedBack:
          # re: Spring-Loaded 使用Ⅰ-Getting Started
          2015-09-16 16:58 | cero
          我在項(xiàng)目中引入了springloaded之后,處理請(qǐng)求并返回就會(huì)報(bào)
          java.lang.String cannot be cast to org.springframework.http.MediaType
          這個(gè)錯(cuò) 是為什么呢?  回復(fù)  更多評(píng)論
            
          # re: Spring-Loaded 使用Ⅰ-Getting Started
          2015-12-03 13:26 | ztr323
          按照上面的設(shè)置,為什么沒有反應(yīng)?代碼改變之后輸出還是原來的?  回復(fù)  更多評(píng)論
            
          # re: Spring-Loaded 使用Ⅰ-Getting Started
          2015-12-03 14:58 | ztr323
          原來部分jvm版本不行啊  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 元氏县| 西充县| 英德市| 黔南| 大荔县| 凤山县| 崇明县| 淮南市| 额敏县| 霍林郭勒市| 赤峰市| 余干县| 光泽县| 原阳县| 金堂县| 神木县| 察隅县| 读书| 水富县| 聊城市| 安远县| 太谷县| 安多县| 德庆县| 阜阳市| 克拉玛依市| 景宁| 开平市| 大同县| 黎平县| 包头市| 台前县| 隆昌县| 隆化县| 武城县| 炉霍县| 卢龙县| 贵南县| 友谊县| 漳州市| 沾化县|