• Java开发小技巧(一)


    前言

    相信许多程序员在看别人写的代码的时候,会有怀疑人生的感想,面对一堆天书一样的代码,很难摸清作者的思路,最后选择了重构,如果你认同上面这个作法,说明了两个问题:要么原来的开发者技术菜、要么你技术菜。

    企业级项目的开发不是一个开发人员就能完成的,开发过程中往往会有一些需求变更、人员调动,所以代码的编写规范非常非常重要,你要确保项目交接后,后续开发人员可以看懂你的东西,知道如何进行后期的维护和功能迭代。

    最近在看公司项目源码(Java)的时候,发现项目的结构非常清晰,后期维护非常便捷,原因就是运用了很多巧妙的开发技巧,在这里也和大家分享一下,希望对你们有帮助。

    1.IP地址变量化

    相信大家在连接数据库的时候是这样写的:

    jdbc:mysql://127.0.0.1:3306/test

    这是连接本地MySql数据库的字符串,这句话看起来没有问题,但是大多数企业项目会把数据库独立出来,使用数据库一体机或远程数据库,这时候就需要修改上面的IP了,如果项目少这样写没什么问题,但是如果项目多了,岂不是每个项目都要去修改,这样显得非常不智能,所以解决方案来了:

    使用hosts文件使IP地址变量化

    首先介绍一下hosts文件,它的作用就是将一些网址域名与其对应的IP地址建立一个关联,相当于本地的DNS域名解析器,当用户访问一个网址时,系统会首先从hosts文件中寻找对应的IP地址,一旦找到,系统会立即访问对应的IP,如果没有找到,则系统再会将网址提交DNS域名解析服务器进行IP地址的解析。

    Windows中hosts文件位于C:WindowsSystem32driversetchosts,Linux中位于/etc/hosts

    现在我们把数据库连接字符串改成这样子:

    jdbc:mysql://mydb:3306/test

    与之前的不同之处在于,将127.0.0.1的IP地址改成了变量名mydb

    接着我们来修改hosts文件,打开hosts文件其实你可以看到,平时我们使用的localhost其实是默认解析到IP127.0.0.1上的,我们可以在文件最下面添加这样一行配置:

    127.0.0.1 mydb

    大功告成,运行项目你会发现一切正常,这就是将IP地址变量化的方法,如果之后公司要求将数据库迁移到其它地方,只需修改一下服务器的hosts文件即可,服务器上面所有的项目就能正常连接数据库了,是不是很方便呢

    2.配置文件式开发

    在我们的开发中经常会有一些需要预先定义好的变量或者常量,比如数据库连接配置、Sql语句等等,如果把它们写死在代码里面,会显得很不灵活,因为Java是一种编译型开发语言,修改代码需要重新编译和部署,于是我们可以使用这种方法——将变量存放到配置文件中。

    这样如果我们修改了变量内容,也不需要重新编译,像Spring、Mybatis等大多是Java框架都是利用这种方式来工作的。

    下面举一个简单的例子:

    首先我们新建一个config.properties的配置文件:

    db.driver=com.mysql.jdbc.Driver
    db.url=jdbc:mysql://mydb:3306/test?characterEncoding=utf8&useSSL=true&serverTimezone=UTC
    db.username=root
    db.password=toor
    

    这是一个简单的数据库连接配置文件,然后我们在代码中加载这个文件:

    File file = new File("config.properties");
    if(!file.exists() && file.isDirectory()){
    			throw new FileNotFoundException("缺少配置文件config.properties");
    		}
    Properties prop = new Properties();
    FileInputStream in = new FileInputStream(file);
    InputStreamReader reader = new InputStreamReader(in, "UTF-8");  //解决文件编码问题
    prop.load(reader);  //加载配置内容到prop对象中
    

    这样我们就可以通过Properties提供的方法来获取相应的配置了,如:

    String url = prop.getProperty("db.url");
    

    加载配置文件还有一种方式:

    InputStream in = getClass().getResourceAsStream("config.properties");
    prop.load(in);
    

    这是通过classpath来获取配置文件,但是要求配置文件必须放在classpath中,而且需要注意的是,如果你将项目打包成jar包,配置文件也会被一起打包,没办法对文件进行修改了。

    使用Properties prop = System.getProperties();还可以获取JVM的一些配置,比如系统换行符等信息,在读取解析本地文件内容时是很有用:System.getProperty("line.separator")

    以上只是使用配置文件的一个简单说明,这种方式在开发一些工具程序的时候非常有用。

    写在最后

    今天先写到这吧,下一篇文章将给大家分享一个很实用的方法:利用Maven打造一个通用的工程,可以把一些通用的配置信息、类、方法进行统一管理,并且为其它工程提供服务,敬请期待哟

    本文为作者kMacro原创,转载请注明来源:http://www.jianshu.com/p/830cad891984。

  • 相关阅读:
    百度mp3地址解密码
    VB 在EXE后附加信息
    截屏函数
    Base64和StrToByte
    The Android ION memory allocator, DMABUF is mentioned as well
    DDC EDID 介绍
    Memory management for graphic processors TTM的由来
    科普 写display driver的必看 How video card works [2D的四种主要操作]
    GEM vs TTM
    DMABUF 背景介绍文章 Sharing buffers between devices
  • 原文地址:https://www.cnblogs.com/zkh101/p/8060092.html
Copyright © 2020-2023  润新知