精华内容
下载资源
问答
  • Java程序动态更新的研究
    千次阅读
    2021-03-11 12:14:39

    摘要:软件在生命周期中会不断地发生演化,包含错误修正,功能拓展,架构调整等等。传统的更新方法会要求软件在更新过程中重新启动。但是,很多软件要求7乘24小时的不中断服务。动态更新技术能够满足这种需求。在应用动态更新技术之后,软件可以不停止服务,在适当的时候把旧版的程序替换成新版本的程序,同时,把旧版本的数据转换成新版本的数据。动态更新技术已经被证明在C语言软件和操作系统上是可行的,并且有多种方式用来实现动态更新。在现代的计算中,Java软件不断得到更广泛的应用,因此,实现Java软件的动态更新有着巨大的意义。针对Java软件,本文首先对它们的演化进行了分析,发现了Java软件在开发初期,可能发生大的架构变化,但是在一段时间的发展之后,架构会趋于稳定的规律。从而确认对Java软件应用动态更新是可行的。另外,Java语言作为一种托管语言,在动态更新技术的应用上有一些优势,比如在进行方法替换时不会增加开销;而Java语言规范要求Java程序在进行方法调用时为每一个调用创建栈帧,为动态更新技术进行线程跟踪提供了方便而规范的方法。在调研了几种动态更新技术算法后,本文提出了新的“按线程进行更新的双向写穿同步”算法。相对于现有的“在安全点进行更新”和“按函数进行更新的双向写穿同步”的算法,这种更新算法确保同一个线程访问的数据类型和调用的方法都属于同一个版本;在更新过程中,线程只需要关注自身的状态,到达了可以进行更新的位置,就对自己进行更新。而传统的两种更新算法,在寻找更新时机时都要进行线程通信。因此,这个新的更新算法更加适合多线程程序的模型。本文通过两种方式实现了这种更新算法:1、修改Java虚拟机以提供动态更新的支持;2、不修改Java虚拟机,在JVMTI接口上实现。修改Java虚拟机因为可以访问虚拟机内部信息,实现比较容易;而在JVMTI上实现有更好的可移植性和可拓展性。论文分别介绍了这两种实现,以及在JVMTI接口上实现Caprice过程中遇到的问题,和相应的解决方案。并且通过实验证实了Caprice动态更新框架的可行性。最后,本文对Caprice和其他动态更新技术进行了比较,并且根据实验中发现的问题,提出了Caprice可行的改进。

    更多相关内容
  • Android动态更新图标

    热门讨论 2016-12-27 12:35:16
    Android动态更新图标,几行代码搞定复杂问题!
  • android 绘制折线图(AChartEngine)Linechart 动态更新横轴为获取的当前时间
  • ECharts 动态更新数据

    万次阅读 多人点赞 2020-08-16 16:29:29
    序言:本篇继续介绍Echarts的使用,主要解决数据更新! 目录序言:本篇继续介绍Echarts的使用,主要解决...一、echarts动态更新二、echarts-for-react动态更新 一、echarts动态更新 二、echarts-for-react动态更新 ...

    序言:本篇继续介绍Echarts的使用,主要解决数据更新!

    在这里插入图片描述

    一、echarts动态更新

    echarts 由数据驱动,数据的改变驱动图表的改变,因此动态数据的实现也变得异常简单。
    echarts 中通过 setOption 更新所有的数据,我们要做的只是定时获取数据,然后使用 setOption 填入数据,至于数据在过程中发生了哪些变化,不在我们的考虑范围内。
    1、虚拟数据
    一般可能用ajax请求来获取数据,这里为了方便大家查看–整了些虚拟数据,进行随机抽取数据

    //虚拟数据
     randomList = [
     	[6, 22, 32, 11, 36, 20],
        [12, 32, 8, 34, 18, 14],
        [22, 12, 32, 10, 10, 20],
        [18, 38, 16, 26, 14, 14],
        [16, 10, 10, 38, 10, 14],
        [28, 12, 32, 35, 17, 20]
      ];
    

    2、获取随机数据,setOption更新数据
    实例化Echarts,设置了autoChange方法:随机获取数据并setOption更新数据

    // 基于准备好的dom,初始化echarts实例
    var echartBar = echarts.init(document.getElementById('echartBar'));
    function autoChange(){
        //获取随机数组
        var random = Math.ceil(Math.random()*6-1);
        console.log("random:"+random)
        // 指定图表的配置项和数据
        var optionBar = {
             title: {
             	  text: 'Echarts动态更新数据'
             },
             tooltip: {},
             legend: {
             	data:['销量']
            },
             //设置X轴
            xAxis: {
               	data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
            },
            yAxis: {},
            series: [{
          	  	name: '销量',
            	type: 'bar',
            	data: randomList[random], 
           	 }]
        };
        // 使用刚指定的配置项和数据显示图表。
    	echartBar.setOption(optionBar);
    }
    

    3、创建定时任务,进行动态更新
    设置定时任务,定时调用autoChange方法,完成上方gif图展示效果:

    autoChange();  //初始化实例后,首次设置数据
    setInterval(  //设置定时器,1s更新一次
    	function(){
    		autoChange();
    	},1000
    );
    

    二、echarts-for-react动态更新

    echarts-for-react 是针对于 React 的 Echarts 封装插件。
    echarts-for-react 可以在React中调用echarts接口直接渲染出Echarts图表,只要传入相关的参数和数据即可。
    1、react环境安装依赖
    使用npm安装依赖

    npm install --save echarts
    npm install --save echarts-for-react
    

    2、引入echarts-for-react

    import ReactEcharts from 'echarts-for-react';
    

    3、页面上使用

     <ReactEcharts option={this.getOption(random)} />
    

    4、实例如下
    react环境下图表若想动态更新,必须设置state值作为参数动态变化。如下完成上方gif图展示效果:

    import React, { Component }  from 'react';
    import ReactEcharts from 'echarts-for-react';
    
    const randomList = [
      [6, 22, 32, 11, 36, 20],
      [12, 32, 8, 34, 18, 14],
      [22, 12, 32, 10, 10, 20],
      [18, 38, 16, 26, 14, 14],
      [16, 10, 10, 38, 10, 14],
      [28, 12, 32, 35, 17, 20]
      ];
    
    class EchartsDemo extends Component{
      state = { 
        random: randomList[0],
      }; 
      
       // 组件初始化时要挂载的内容
      componentDidMount() {
        //设置定时器,1s更新一次
        this.timer = setInterval(() => {
          var num = Math.ceil(Math.random()*6-1);
          this.setState( 
            { 
              random: randomList[num],
            }
          )
        }, 1000)
      };
    
       //组件卸载时清除定时器
      componentWillUnmount() {
        clearInterval(this.timer);
      }
    
      /**
       * 折线图的配置对象
       */
      getOption = (random) =>{
          return {
              title: {
                  text: 'Echarts动态更新数据'
              },
              tooltip: {},
              legend: {
                  data:['销量']
              },
              xAxis: {
                  data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
              },
              yAxis: {},
              series: [{
                  name: '销量',
                  type: 'bar',
                  data: random
              }]
          };
      }
      
      render(){
          const {random} = this.state;
          return(
              <div style={{width:660,height:400}}>
                 <ReactEcharts option={this.getOption(random)} />
              </div>
          )
      }
    }
    
    export default EchartsDemo;
    
    

    ·········································································································································
    本文介绍Echarts动态更新数据,请大家多多指教,能get到知识点不要忘了关注点个赞~

    展开全文
  • IOS 热更新,实时代码更新,动态更新,动态库framework http://blog.csdn.net/jianrenbubai/article/details/50351507
  • JPA实现部分字段动态更新

    千次阅读 2021-02-23 10:28:07
    JPA实现部分字段动态更新 在使用jpa进行操作数据库时,我们经常会遇到更新数据问题。jpa的save方法可以解决这个问题,但这个方法有一个局限,在匹配到相同主键的记录是可以进行更新,但是会将传入参数的值全部更新到...

    JPA实现部分字段动态更新

    在使用jpa进行操作数据库时,我们经常会遇到更新数据问题。jpa的save方法可以解决这个问题,但这个方法有一个局限,在匹配到相同主键的记录是可以进行更新,但是会将传入参数的值全部更新到数据库中。
    例如下面两个对象

    数据库:
    demo{
         id:1,
         name:one,
         number:123
         info:yes
    }
    传入参数:
    demo2{
         id:1,
         name:two,
         number:null
         info:null
    }
    

    在上面这种情况下,你的目的可能只是更新某个值,例如只修改name在数据库的存储值,并不修改其他的值,如下图所示:
    在这里插入图片描述

    但是jpa的save默认会将demo2的值直接覆盖数据库中demo的值,此时number和info的值也会修改,结果如下图
    在这里插入图片描述
    为了实现部分更新可以采用在实体类上标注@DynamicUpdate 和配合BeanUtils的方式

    代码

    实现复制非空属性值的工具类

    package com.example.demo.Utils;
    
    import org.springframework.beans.BeanUtils;
    import org.springframework.beans.BeanWrapper;
    import org.springframework.beans.BeanWrapperImpl;
    
    import java.beans.PropertyDescriptor;
    import java.util.HashSet;
    import java.util.Set;
    import java.util.stream.Stream;
    
    public class JpaUtil {
        public static void copyNotNullProperties(Object src,Object target){
            BeanUtils.copyProperties(src,target,getNullPropertyNames(src));
        }
    
        public static String[] getNullPropertyNames (Object source) {
            final BeanWrapper src = new BeanWrapperImpl(source);
            java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors();
    
            Set<String> emptyNames = new HashSet<String>();
            for(java.beans.PropertyDescriptor pd : pds) {
                Object srcValue = src.getPropertyValue(pd.getName());
                if (srcValue == null) {
                    emptyNames.add(pd.getName());
                }
            }
            String[] result = new String[emptyNames.size()];
            return emptyNames.toArray(result);
        }
    
    }
    

    实体类

    package com.example.demo.entities;
    
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
    import lombok.*;
    import lombok.experimental.Accessors;
    import org.hibernate.annotations.DynamicUpdate;
    
    import javax.persistence.*;
    import java.io.Serializable;
    
    /**
     * @author xiaow
     */
    @Entity
    @AllArgsConstructor
    @NoArgsConstructor
    @ToString
    @Data
    @Table(name="apply")
    @Accessors(chain = true)
    @JsonIgnoreProperties(value = { "hibernateLazyInitializer"})
    @DynamicUpdate     //动态更新
    public class Apply implements Serializable {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Integer id;
        private Integer state;
        private Integer studentid;
        private Integer awardtype;
        private String info;
        private String name;
        private Integer type;
        private Integer teacherid;
       private Integer teacherstate;
    }
    
    

    持久层

    public interface ApplyRepos extends JpaRepository<Apply,Integer> {}
    

    事务实现层

       public int updateAll(Apply apply) {
            int a=0;
            if(apply!=null&&apply.getId() != null) {
                Apply apply1 = applyRepos.getOne(apply.getId());
                if (apply1!=null) {
                //将apply中非空的值赋给apply1中,并将apply1重新存储
                    JpaUtil.copyNotNullProperties(apply, apply1);   
                }
                a=applyRepos.save(apply1).getId();
            }
            return a;
        }
    

    这样就实现了jpa的动态更新记录

    展开全文
  • Android 动态下载,可以动态的后台更新ImageView里面的图片; 而且是用自定义的Listener实现的,注释也比较全 欢迎评论
  • 在写页面时,有些需求对时间节点要求比较严格,时间需得动态跟新,如图: 第一步,首先添加控件label 添加两个分别放日期、具体的时间 分别命名为lbDate、lbTime 第二步,添加控件Timer private void ...

    在写页面时,有些需求对时间节点要求比较严格,时间需得动态更新,如图:

    在这里插入图片描述
    第一步,首先添加控件label
    添加两个分别放日期、具体的时间
    分别命名为lbDate、lbTime

    在这里插入图片描述

    第二步,添加控件Timer
    在这里插入图片描述

    在这里插入图片描述
    属性中设置更新速度:Interval-1000表示一秒更新一次
    Enable-表示使用timer控件,可以后台操作

    点击控件编辑代码

     private void timer_Tick(object sender, EventArgs e)
            {
                 DateTime dt;
                dt = dt.AddSeconds(1);
                this.lbDate.Text = dt.ToLongDateString();
                this.lbTime.Text = dt.ToLongTimeString();
            }
    
    

    窗体加载时

    private  void FrmAll_Load(object sender, EventArgs e)
    {
    try{
    dt = DateTime.Now;
    timer1.Start();
    this.lbDate.Text = dt.ToShortDateString();
    this.lbTime.Text = dt.ToLongTimeString();
    }
    catch  (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    }
    

    如此一秒刷新一次窗体

    展开全文
  • apollo配置动态更新

    千次阅读 2019-11-18 21:26:40
    简单配置 使用@Value注解的配置会自动刷新配置 复杂对象 @Component("systemConfig") @ConfigurationProperties(prefix = "cword") @RefreshScope @EnableApolloConfig("cword") public class SystemConfig { ...
  • 创建一个动态库 MyDynamicFramework: 创建一个测试类: 在 MyDynamicFramework.h(默认生成,可统一暴露头文件) 中 #import “Person.h”: #import <UIKit/UIKit.h> //! Project version number ...
  • @Update动态更新

    万次阅读 2018-08-13 23:40:35
    动态更新的sql语句书写示例 : 7.0 请求示例 : { "id": 44, "createBy": "薛衎22", "updateBy": null, "updateTime": null, "description&qu
  • 配置中心实现定时任务动态更新

    千次阅读 2021-11-24 17:15:02
    当定时任务使用@RefreshScope想达到配置动态刷新时,你会发现定定时任务失效了,失效的原因和@RefreshScope的原理有关:配置的刷新会导致原来的对象被清除,需要重新使用对象才能出发生成新对象,但因为对象没了,又...
  • ios 动态更新 热更新

    热门讨论 2015-07-12 12:14:58
    可以实现动态更新,无需发布app版本实现增加内嵌功能
  • 微信小程序|页面动态更新数据

    千次阅读 2020-04-28 00:09:21
    那么如何对小程序的数据进行页面动态更新呢? 解决方案 更新数据并让框架自动更新相关视图需要用到this.setData()方法。在js中定义一个this.setData()事件然后绑定到视图按钮上,这样当我们点击页面中的按钮时就...
  • 小程序之数组列表动态更新

    千次阅读 2019-07-01 18:12:16
    最近写小程序遇到动态更新的问题 对数组的动态更新,清空数组我开始用的是:this.data.数组名.pop() 想直用循环删除数组,但是发现没有动态更新,后来想到之前看到的,this.data的写法不是动态更新,不是直接赋值...
  • Flink CEP 实现动态更新规则

    千次阅读 2020-12-14 22:29:00
    有人会问为什么需要规则动态变更呢?直接修改了规则把服务重启一下不就可以了吗,这个当然是不行的,规则引擎里面通常会维护很多不同的规则,例如在监控告警的场景下,如果每个人修改一下自己的监控阈值,就重启一下...
  • lua+nginx动态更新配置

    千次阅读 2020-04-26 11:41:40
    动态更新配置 1. 设计说明 考虑到配置为全局生效,即需对所有工作进程共享。更新频率比较慢,使用lua_shared_dict进行存储。如下定义: lua_shared_dict sysconfig 10k; 成员包括: “time”:配置文件的生成的...
  • flutter动态更新ListView

    千次阅读 2020-08-24 22:39:04
    需要更新适配器并调用notifyDataSetChanged。在Flutter中,如果setState()中更新widget列表,您会发现没有变化, 这是因为当setState被调用时,Flutter渲染引擎会遍历所有的widget以查看它们是否已经改变。 当遍历...
  • PyQt5 动态更新tableWidget方法

    千次阅读 2021-01-31 20:22:15
    self.name_tableWidget.clearContents() # 数据 arr = self.db2.select_sample_step_region(sample_id) self.name_tableWidget.setRowCount(len(arr)) 有事,晚点补代码
  • 一、vue 点击动态更新图形验证码 在验证码的图片上,绑定点击事件 getCaptcha(),同时使用 ref 指明图形验证码的引用对象,代码如下所示: <section class="login_message"> <input type="text" ...
  • Spring Boot配置动态更新

    万次阅读 2018-08-01 17:24:39
    解释 配置动态更新在本文中指当更改应用的...Spring Boot在配置动态更新上本身提供了支持,我们在未使用配置中心的情况也可以简单地实现配置动态更新。 实现方式 添加依赖包:spring-boot-starter-actuator...
  • Vue页面实现时间动态更新

    千次阅读 2020-06-01 09:45:26
    1、data data() { return { myDateTime: "" } } 2、mouted mounted() { this.getCurrentTime(); clearInterval(myTimeDisplay ); let myTimeDisplay = setInterval(() =... //每秒更新一次时间 }, 1000);
  • 如何动态更新el-table中的数据

    千次阅读 2021-04-20 19:46:00
    $set动态更新el-table中的数据 解决方案 this.$set(target, key, value) target: 要更改的数据源(可以是一个对象或者数组) key: 要更改的具体数据(索引) value: 新增的值 <el-button type="text" @click=...
  • WPF使用Live Chart之动态更新数据

    千次阅读 2020-02-24 16:18:43
    WPF使用Live Chart之动态更新数据 效果如下: 前台代码: <Window x:Class="Chapter3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=...
  • ECharts动态更新

    千次阅读 2018-03-08 16:32:41
    所有的动态更新,修改数据后,直接再setOption即可,比如上面的图表没有内容,然后: var names = [1, 2, 3]; var nums = [3, 4, 5]; myChart.setOption({ xAxis: { data: names }, series: [{ name: '销量'...
  • el-tree树形结构动态更新数据

    千次阅读 2019-08-14 15:37:41
    ref:'tree',//动态添加机构,对应的每一条的ref都应该唯一,否则互相影响 mineStatus: [], orglists:[], data: [{ id: 1, label: '一级 1', children: [{ id: 4, label: '二级 1-1' }] }, { id: 2, ...
  • Android插件化方式实现View动态更新

    千次阅读 2016-12-20 12:48:36
    翻开csdn,浏览了一下文章列表,发现好久没更新博客了。忽然觉得自己最近又TM邪恶了。。 大家可以想一个问题:假设我们App首页有个Icon,用来根据不同的节日播放不同主题的音乐,例如:圣诞节,需要把Icon变成...
  • 通过React Native动态更新iOS应用

    千次阅读 2016-03-23 12:05:26
    这篇文章一直拖了快1个多月了,一直都找借口不去完成它。今天终于铁了心了。开始正题。 这是一篇关于 react-native iOS 动态更新的文章。
  • Hyperledger Fabric 2.x 动态更新智能合约

    千次阅读 2022-02-21 09:11:12
    在上一篇文章中分享了智能合约的安装与使用,如果业务有变更代码需要修改怎么办呢?本文分享如何对已安装的合约进行版本更新
  • 记录 Spring Security如何动态更新已登录用户信息 /** * 设置当前登录用户,保存 或 更新登录信息 * * @param userDetails */ public static void setLoginUser(UserDetails userDetails) { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 966,763
精华内容 386,705
关键字:

动态更新