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)  編輯  收藏 所屬分類: JVM 、HotSwap

          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è)置,為什么沒(méi)有反應(yīng)?代碼改變之后輸出還是原來(lái)的?  回復(fù)  更多評(píng)論
            
          # re: Spring-Loaded 使用Ⅰ-Getting Started
          2015-12-03 14:58 | ztr323
          原來(lái)部分jvm版本不行啊  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 庆云县| 郓城县| 巴青县| 玉屏| 鱼台县| 瑞金市| 通山县| 任丘市| 汶上县| 临颍县| 博爱县| 阳西县| 横峰县| 鄂州市| 海城市| 交城县| 图片| 板桥市| 宣化县| 关岭| 封丘县| 天台县| 普兰县| 尉氏县| 康乐县| 中牟县| 宾川县| 图们市| 濮阳市| 攀枝花市| 葫芦岛市| 益阳市| 澄城县| 禄劝| 吴桥县| 常熟市| 屏南县| 赣州市| 虎林市| 鸡泽县| 且末县|