美文网首页
java(使用mvn)中 pom.xml的一些值的说明

java(使用mvn)中 pom.xml的一些值的说明

作者: 王小禾 | 来源:发表于2019-07-19 21:15 被阅读0次

1、背景

我们在java编程时,经常需要使用到pom.xml中的变量,本文稍微记录。

2、读属性

1)
java代码中,spring框架获取属性,是获取资源文件夹下的配置,直接写在pom中是不行的。
constant.properties中写:

# queue name
job.queuename=${job.queuename}

pom中有对应的值:

<profile>
      <id>prod</id>
      <properties>
        <profiles.active>prod</profiles.active>
                 <job.queuename>abc</job.queuename>
        ...

这样才能识别。
2)自己实现
如果不用框架自己实现一个属性文件,可以将constant.properties放到map中,再取出来。

public class PropertyFile {

    private static Logger logger_sys = LoggerFactory.getLogger("system");
    private static final Map<String, String> constontMap = new ConcurrentHashMap<String, String>();

    static {
        loadFile();
    }

    public static void loadFile() {

        InputStream in = null;
        try {
            File file = new File(PropertyFile.class.getResource("/constant.properties").toURI().getPath());
            if (!file.exists()) {
                System.out.println("constant.properties-----------------------------file not exist.");
                System.exit(0);
            }
            Properties prop = new Properties();
            //读取属性文件a.properties
            in = new BufferedInputStream(new FileInputStream(file));
            prop.load(in);     ///加载属性列表
            Iterator<String> it = prop.stringPropertyNames().iterator();
            while (it.hasNext()) {
                String key = it.next();
                constontMap.put(key, prop.getProperty(key));
            }

            for (String key : constontMap.keySet()) {
                if (key != null) {
                    logger_sys.info(key + "-----" + constontMap.get(key));
                }
            }
            
        } catch (Exception e) {
            logger_sys.error(e.getMessage());
            e.printStackTrace();
        } finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    in = null;
                }
            }
        }
    }


    public static String getPropertyByName(String propertyName) {
        return constontMap.get(propertyName);
    }

    public static String getPropertyByLink(String from, String to, String propertyName) {
        if (constontMap.containsKey(propertyName + "." + from + "." + to)) {
            return constontMap.get(propertyName + "." + from + "." + to);
        }
        return constontMap.get(propertyName);
    }


}

使用的时候取出来:

        String xxx = PropertyFile.getPropertyByName("xxx");

此处,加载文件写在静态代码块中,会先加载。(进一步研究)


2 . mvn读取变量

http://www.voidcn.com/article/p-xzsdnetl-xp.html

相关文章

网友评论

      本文标题:java(使用mvn)中 pom.xml的一些值的说明

      本文链接:https://www.haomeiwen.com/subject/mdlelctx.html