zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    C++中使用stringstream进行类型转换操作
    代理模式
    观察者模式 VS 责任链模式
    10.模板方法模式
    2.里氏替换原则
    单一职责原则
    规格模式
    策略模式的扩展——策略枚举
    策略模式 VS 桥梁模式
    原型模式【下】
  • 原文地址:https://www.cnblogs.com/zkh101/p/8060092.html
Copyright © 2011-2022 走看看