精华内容
下载资源
问答
  • //导入方法依赖package包/类private static int validateBasedOnStatus(Props jobProps,Collection errors, JobCallbackStatusEnum jobStatus,int maxNumCallback, int maxPostBodyLength) {in...

    import azkaban.utils.Props; //导入方法依赖的package包/类

    private static int validateBasedOnStatus(Props jobProps,

    Collection errors, JobCallbackStatusEnum jobStatus,

    int maxNumCallback, int maxPostBodyLength) {

    int callbackCount = 0;

    // replace property templates with status

    String jobCallBackUrl =

    JOB_CALLBACK_URL_TEMPLATE.replaceFirst(STATUS_TOKEN, jobStatus.name()

    .toLowerCase());

    String requestMethod =

    JOB_CALLBACK_REQUEST_METHOD_TEMPLATE.replaceFirst(STATUS_TOKEN,

    jobStatus.name().toLowerCase());

    String httpBody =

    JOB_CALLBACK_BODY_TEMPLATE.replaceFirst(STATUS_TOKEN, jobStatus.name()

    .toLowerCase());

    for (int i = 0; i <= maxNumCallback; i++) {

    // callback url

    String callbackUrlKey =

    jobCallBackUrl.replaceFirst(SEQUENCE_TOKEN, Integer.toString(i));

    String callbackUrlValue = jobProps.get(callbackUrlKey);

    // sequence number should start at 1, this is to check for sequence

    // number that starts a 0

    if (i == 0) {

    if (callbackUrlValue != null) {

    errors.add("Sequence number starts at 1, not 0");

    }

    continue;

    }

    if (callbackUrlValue == null || callbackUrlValue.length() == 0) {

    break;

    } else {

    String requestMethodKey =

    requestMethod.replaceFirst(SEQUENCE_TOKEN, Integer.toString(i));

    String methodValue = jobProps.getString(requestMethodKey, HTTP_GET);

    if (HTTP_POST.equals(methodValue)) {

    // now try to get the post body

    String postBodyKey =

    httpBody.replaceFirst(SEQUENCE_TOKEN, Integer.toString(i));

    String postBodyValue = jobProps.get(postBodyKey);

    if (postBodyValue == null || postBodyValue.length() == 0) {

    errors.add("No POST body was specified for job callback '"

    + callbackUrlValue + "'");

    } else if (postBodyValue.length() > maxPostBodyLength) {

    errors.add("POST body length is : " + postBodyValue.length()

    + " which is larger than supported length of "

    + maxPostBodyLength);

    } else {

    callbackCount++;

    }

    } else if (HTTP_GET.equals(methodValue)) {

    // that's cool

    callbackCount++;

    } else {

    errors.add("Unsupported request method: " + methodValue

    + " Only POST and GET are supported");

    }

    }

    }

    return callbackCount;

    }

    展开全文
  • java props_React Props

    2021-03-22 12:24:20
    借助楼上代码,做了个改良,下面父子模块互相传递参数。class CptBody extends React.Component{constructor(){super();this.state = {username : 1}; //可以传json等很多格式(这个是初始化赋值)}//click事件...

    借助楼上的代码,做了个改良,下面的父子模块互相传递参数。

    class CptBody extends React.Component{

    constructor(){

    super();

    this.state = {username : 1}; //可以传json等很多格式(这个是初始化赋值)

    }

    //click事件函数

    changeAge(){

    this.setState({username:1+this.state.username})

    }

    //change事件函数

    changeUsername(event){

    this.setState({username:parseInt(event.target.value)})

    }

    render(){

    return(

    下面的操作有惊喜

    {this.state.username}

    this.changeAge()}/>

    )

    }

    }

    class BodyChild extends React.Component{

    render(){

    return(

    子页面输入:

    )

    }

    }

    ReactDOM.render(

    ,

    document.getElementById('example')

    );

    BodyChild 组件的 render 函数返回值 jsx 中

    的 value 是从父组件获取的 getname 这个变量值,onChange 获取的是 changeUsername 这个函数,所以如果文本框中的值改变了,改变值这个事件会触发 changeUsername 这个函数,这个函数会获得事件的值,即我们文本框修改后的值,并将其赋值给父组件的 state.username 这个变量。而父组件的这个变量改变后,state 随之改变,这时候,render 会重新启动,所以我们会看到修改后的值。

    父组件的 jsx 中有一个箭头函数,有一个 bind 函数,这两者有什么区别吗?经验证,这两者是可以互换的。

    onClick={this.changeAge.bind(this)} 和 onClick={()=>this.changeAge()} 可以互换。

    独孤尚良

    独孤尚良

    yut***hanlin@qq.com2年前 (2019-05-26)

    展开全文
  • 在日常的Java程序开发中,Properties文件读写是很常用。经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整。那么本片就来简单介绍下,如何使用Properties。文件读取Properties类...

    在日常的Java程序开发中,Properties文件的读写是很常用的。经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整。

    那么本片就来简单的介绍下,如何使用Properties。

    文件的读取

    Properties类提供了Load方法,支持以inputstream为参数,读取配置文件。因此可以这样:

    Properties props = new Properties();

    //如果配置文件放在类目录下,可以直接通过类加载器读取

    props.load(new FileReader("D:\\test.properties"));

    不过上面的读取方法需要完整的文件路径,显然在开发中是很不方便的。

    因此推荐下面这种方法,通过类加载器的路径来读取配置文件:

    props.load(PropertiesTest.class.getClassLoader().getResourceAsStream(fileName));

    属性的读写

    通过getProperty可以取到文件的属性:

    //获取属性值

    System.out.println(props.getProperty("name"));

    System.out.println(props.getProperty("age"));

    System.out.println(props.getProperty("address","dalian"));//如果没有拿到属性值,会按照第二个参数作为默认值

    //修改属性值

    props.setProperty("name", "ttt");

    System.out.println(props.getProperty("name"));

    配置持久化

    如果需要在程序运行时,持久化配置文件,也可以使用store方法:

    //持久化配置文件

    File file = new File("D:\\result.properties");

    Writer fw = new FileWriter(file);

    props.store(fw, "conmments");

    fw.close();

    源码测试

    package xing.CodeJava.basic;

    import java.io.File;

    import java.io.FileReader;

    import java.io.FileWriter;

    import java.io.Writer;

    import java.util.Properties;

    public class PropertiesTest {

    public static void main(String[] args) {

    String fileName = "test.properties";

    try {

    //读取配置文件

    Properties props = new Properties();

    //props.load(PropertiesTest.class.getClassLoader().getResourceAsStream(fileName));//如果配置文件放在类目录下,可以直接通过类加载器读取

    props.load(new FileReader("D:\\TestCode\\CodeJava\\CodeJava\\src\\main\\java\\xing\\CodeJava\\basic\\test.properties"));

    //获取属性值

    System.out.println(props.getProperty("name"));

    System.out.println(props.getProperty("age"));

    System.out.println(props.getProperty("address","dalian"));//如果没有拿到属性值,会按照第二个参数作为默认值

    //修改属性值

    props.setProperty("name", "ttt");

    System.out.println(props.getProperty("name"));

    //持久化配置文件

    File file = new File("D:\\TestCode\\CodeJava\\CodeJava\\src\\main\\java\\xing\\CodeJava\\basic\\result.properties");

    Writer fw = new FileWriter(file);

    props.store(fw, "conmments");

    fw.close();

    }catch(Exception e){

    e.printStackTrace();

    }

    }

    }

    展开全文
  • Jodd Props 是对Java自带properties 增强,文法风格类似于ini文件,表现力丰富,比json/xml等配置更简单,更可读,更易使用。 Props   补充了很多JDK所需要:   对UTF8支持, 插值, 区段, 多配置, fully...

     

     

    什么是 Jodd Props

    Jodd Props 是对Java自带的properties 的增强,文法风格类似于ini文件,表现力丰富,比json/xml等配置更简单,更可读,更易使用。

    Props 补充了很多JDK所需要的: 
    对UTF8的支持, 插值, 区段, 多配置, fully configurable… 等等! 
    配置可以保存在*.props 文件中, 也可以通过其他形式传入, 
    例如:字符串、File、InputStream 、Map等。而且, Props 兼容Java自带的properties.

    基本文法.

    以下是 props 文件的基本文法。具体用法可见附带的例子:

    UTF8 编码

    props 文件采用UTF8 作为默认编码, 当然你也可以指定其它的编码。 
    但是不管设置了什么编码,Props将会一直使用ISO 8859-1编码加载 
    Java自带的Properties文件(后缀名是.properties)。

    删除空白字符

    区段名和属性名将会删除先后空白字符。属性值也会这么修建

    设置属性值

    支持两种符号 (=) (:)

    快速附加属性值

    使用 += 可将属性值附加到该属性,注意:附加的值以英文逗号分隔

    注释

    单行注释支持两种符号:;#。也不必须是每行的第一个符号。

    转义

    使用(\) 来转义特殊字符(如, \# \\)。

    多行的值

    如果行末是(\), 下一行将继续被包含在值里面。(注: 换行不会被保留)

    特殊字符

    \\uXXXX 将会编码成一个字符。\t, \r and \f 也是。

    多行的值 2

    可以使用三个单引号(''')更方便的设置一个多行的值,(注: 换行将会被保留)

    使用方法

    很简单. 简单的说,都是交给Props 类。

    Props p = new Props();
    p.load(new File("example.props"));
    ...
    String story = p.getValue("story");

    Props 可以从多种类型导入(load)属性: FileInputStream 
    String 或者 Properties。然后调用 getValue() 来获取属性值, 
    返回值类型是一个字符串。

    区段

    区段看起来和 Windows INI 文件的很相似。在 Props里,区段实际上是 
    接下来几个属性值的前缀,直到下一个区段,或者文件的末尾。

    区段名使用[ ]包裹。区段名也可以为空

    例如:

    [users.data]
    weight = 49.5
    height = 87.7
    age = 63
    []
    comment=this is base property

    等同于:

    users.data.weight = 49.5
    users.data.height = 87.7
    users.data.age = 63
    comment=this is base property

    区段, 精简了配置文件,同时更可读

    多配置

    通常情况下,一个应用将会部署在不同的环境中,于是,需要一些不同的配置。 
    例如一个应用的开发模式和生产模式。其中一个解决方案就是: 
    同一个属性允许配多个不同的值。

    Props 支持这种多配置. 配置可以跟随属性名一起设置。配置名使用 < >包裹。 
    一个值也可以拥有多个配置。实际上,配置名可以被放在属性名的任意位置, 
    但是我们强烈建议放在属性名之后,这样做更合理一些。

    没有设置配置的属性数据“基础配置”. 如果没有找到指定配置的属性值, Props 将会 
    从这些“基础配置”里寻找。这样,配置可以被视为一个“不同的角度的视图”或者 
    相同属性集的“快照”

    例如:

    db.port=3086
    
    db.url<develop>=localhost
    db.username<develop>=root
    
    db.url<deploy>=192.168.1.101
    db.username<deploy>=app2499

    注:develop-开发模式 deploy-生产模式 
    上面的例子设置了3个属性, 其中有两个属性有两套配置(develop  deploy)没有“基础配置”

    由于区段只是属性值的前缀,并且配置也可以放在属性值的中间, 于是,配置也可以卸载区段名里面 
    于是,上面的例子也可以写成:

    db.port=3086
    
    [db<develop>]
    url=localhost
    username=root
    
    [db<deploy>]
    url=192.168.1.101
    username=app2499

    当查找值的时候, 就可以指定一个配置:

    String url = props.getValue("db.url", "develop");
    String user = props.getValue("db.username", "develop");

    可以一次同时指定多个配置。当一个值顶一个多个配置,他们之间的顺序是很重要的 
    (补充:String user = props.getValue("db.username", "develop", "deploy"); 
    {: .attn}

    当然也可以只从“基础配置”里查找 – 使用getBaseValue() 方法。 
    “基础配置” 不属于其他任何配置。

    激活配置

    通常, 在应用的生命周期中之会激活一个配置。为了方便每次不用都传入配置文件 
     getValues() Props 允许定义激活的配置。

    激活的配置是调用getValue(String)时默认使用的配置。

    激活的配置可以在 props 文件中设置 – 这样当修改默认配置的时候就不用重新编译 
    源代码。 激活的配置使用一个特殊的名字@profiles   
    例如:

    key1=hello
    key1<one>=Hi!
    
    @profiles=one

    当在Java获取值得时候:

    String value = props.getValue("key1");

    因为激活了配置’one‘, 将会得到 ‘Hi!‘。

    当然激活的配置也可以在Java里设置,只需要调用方法setActiveProfiles()

    上面的为引用文章引用地址:

    http://www.kankanews.com/ICkengine/archives/92722.shtml

    下面的为自己做的demo:

    prop文件:

    @profiles=proTest
    
    baseValue=baseV
    name=base_name_测试
    name<proTest>=base_name_proTest
    
    [Cmd]
    CipherCache=0
    Desc=没有指定1_${baseValue}
    name+=${baseValue}
    
    [Cmd<test>]
    CipherCache=test
    Desc=test_Desc
    
    [Cmd<base>]
    CipherCache=base
    Desc=base_Desc
    
    #[Cmd<com>]
    #CipherCache=base
    #Desc=com
    
    [Cmd<jn>]
    CipherCache=base
    Desc=jn
    
    [Cmd<sd>]
    CipherCache=base
    Desc=sd

    调用代码:

    ErrorCodeDesc.Instance().Load("config/ErrorCodeDesc.prop");
    		Props props = ErrorCodeDesc.Instance().GetProps();
    		System.out.println("props.getValue(\"Cmd.Desc\",\"base\") : "+props.getValue("Cmd.Desc","base"));
    		System.out.println("props.getValue(\"Cmd.Desc\",\"test\") : "+props.getValue("Cmd.Desc","test"));
    		System.out.println("props.getValue(\"Cmd.Desc\") : "+props.getValue("Cmd.Desc"));
    		System.out.println("props.getValue(\"baseValue\") : "+props.getValue("baseValue"));
    		System.out.println("props.getValue(\"Cmd.baseValue\") : "+props.getValue("Cmd.baseValue"));
    		System.out.println("props.getValue(\"Cmd.name\") : "+props.getValue("Cmd.name"));

    输出为:

    17:40:52.982 [main] DEBUG System - ErrorCodeDesc加载完成:config/ErrorCodeDesc.prop
    props.getValue("Cmd.Desc","base") : base_Desc
    props.getValue("Cmd.Desc","test") : test_Desc
    props.getValue("Cmd.Desc") : 没有指定1_baseV
    props.getValue("baseValue") : baseV
    props.getValue("Cmd.baseValue") : null
    props.getValue("Cmd.name") : baseV




     

     

    转载于:https://my.oschina.net/u/3647620/blog/1552475

    展开全文
  • import azkaban.utils.Props; //导入方法依赖package包/类@Overridepublic void cancel() throws InterruptedException {if (process == null)throw new IllegalStateException("Not started.");boolean killed = ...
  • spring:使用标签为Java持久属性集注入值使用 spring 提供Java持久属性集注入值,也就是向 java.util.Properties 对象中注入值。 是简化了 ,该元素对应配置类型为 java.util.Properties 对象依赖。因为...
  • Kafka介绍Kafka是一种高吞吐量分布式发布订阅消息系统,它可以处理消费者规模网站中所有动作流数据。 Kafka 有如下特性:以时间复杂度为O(1)方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间...
  • 在引入spring-txjar包情况下还出现这个情况可能是标签所在部分缺少了某部分 比如少了 或者
  • 这创建了一个文件 C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\AppxPackage 而且是一个错误 APPX3217 SDK folder containing 'UAP.props' for 'UAP ...
  • React-props

    2018-05-03 10:39:20
    props类似于Java的构造器传过来的参数,一般是外界传入的数据。2.例子:主view由于点击事件,触发state中的数据变动,该state的数据又是子view的props中的数据import React from 'react' class MyOwnPage extends ...
  • 我遇到问题是App组件和HelloWorld组件没有从main.js传递数据 . 在Vue中这应该是一件相当简单事情 .您可以在图像中看到根元素已将计数器定义为10,它只是没有填充在任何子组件中 . 几乎像main.js中第12行没有...
  • javascript很多时候就是这么一个熊孩子,他很多时候并不会像C和java这些“好孩子”那样循规蹈矩。因此给我们带来许多烦恼 运行时候控制台报错:uncaught error,这尤其令人恼火是系统告诉我们有错误但是又不告诉...
  • //系统属性System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));System.out.prin...
  • //系统属性System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));System.out.prin...
  • 【转】spring中props,list,set,map元素用法 http://blog.csdn.net/wandong01/article/details/48243325 在spring容器中配置bean,常用到元素除了和外,还有、、、,在hibernate等框架配置文件中我们经常...
  • Java中Properties用法

    2015-04-10 15:44:45
    javajava.util.Properties类读写props文件和xml文件
  • 【react】利用prop-types第三方库对组件的props中的变量进行类型检测 1.引言——JavaScript就是一个熊孩子   1.1对于JSer们来说,js是自由的,但同时又有许多让人烦恼的地方。javascript很多时候就是这么一个...
  • Properties props=System.getProperties();... System.out.println("Java的运行环境版本:"+props.getProperty("java.version")); System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));
  • //系统属性   System.out.println("Java的运行环境版本:"+props.getProperty("java.version"));   System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor"));   ...
  • String implType = props.getProperty("type", "ralasafe"); if (implType.equalsIgnoreCase("ralasafe")) { DataSourceProviderDbcpImpl impl = new DataSourceProviderDbcpImpl(); String ...
  • 尝试{Properties props = new Properties(); props.put(“mail.smtp.starttls.enable”,“true”); props.setProperty(“mail.transport.protocol”,“smtp”); props.setProperty(“mail.smtp.host”,“smtp....
  • 读取java项目下文件

    千次阅读 2016-06-16 15:03:59
    //读取db.properties文件 Properties props = new Properties(); /** * . 代表java命令运行目录 * 在java项目下,. java命令运行目录从项目根目录开始 * 在web项目下, . java命令
  • Java 获取系统参数2014/5/22 12:57:44 a920829018 程序员俱乐部 我要评论(0)摘要:通过System.getProperties()获取系统参数...//系统属性System.out.println("Java的运行环境版本:"+props.getProperty("java.versio...
  • 主要有两种:一是使用ClassgetResourceAsStream方法:private static Properties props;private static final String DatabaseFilePath = "/database.properties";static{props = new Properties();InputStream in...
  • Kafka的JavaAPI操作

    2020-02-25 00:06:16
    Kafka的JavaAPI操作 官网代码参考: 生产者:生产者 消费者:消费者 生产者代码: public class Producer { public static void main(String[] args) { //创建与kakfa连接 Properties props = new Properties();...
  • 老忘的java getproperty

    2011-10-26 15:57:39
    Properties props=...Java的运行环境版本:"+props.getProperty("java.version")); System.out.println("Java的运行环境供应商:"+props.getProperty("java.vendor")); ...
  • java jmail_java jmail

    2021-03-06 13:01:08
    发送邮件主要步骤1....发送邮件需要几个重要类Session ,Message,Transport3.Session对象可以通过SessiongetInstance(java.util.Properties props)或getInstance(java.util.Properties prop...
  • protected static Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss...public static void printSysProperties(){Properties props=System.getProperties();Iterator iter=props.keySet().iterator();whi...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,147
精华内容 458
热门标签
关键字:

java的props

java 订阅