使用单例模式的 Java Properties 示例
本文介绍了如何在 Java 中使用单例模式来使用属性。
引言
在 Java 应用程序中,静态数据/信息可以在整个应用程序中使用。 像我这样的许多“初学者”开发者喜欢将硬编码信息直接写入代码,这对于任何项目来说都非常危险,特别是针对特定客户的应用程序。 为了防止不必要的灾难,我们可以使用 Java properties 来存储静态信息,并结合单例模式。 在这里,我尝试使用 Java properties 和单例模式来配置数据库信息,以便在整个应用程序中使用。
Using the Code
首先,我们应该创建一个名为 db.properties 的文件,并将数据库信息存储如下:
# Static information
IP 000.000.0.00
PORT 1433
DATABASE test2
USER test2
PASS test-2
DRIVERNAME com.microsoft.sqlserver.jdbc.SQLServerDriver
JDBC jdbc:sqlserver
INSTANCE SQLEXPRESS
现在,我们可以使用这个文件在单例模式中进行应用:
import java.io.*;
import java.util.Properties;
public class DBInfo {
static private DBInfo _instance = null;
static public String port = null;
static public String database = null;
static public String ip = null;
static public String user = null;
static public String pass = null;
static public String jdbc = null;
static public String driver = null;
static public String instance = null;
protected DBInfo(){
try{
InputStream file = new FileInputStream(new File("db.properties")) ;
Properties props = new Properties();
props.load(file);
port = props.getProperty("PORT");
ip = props.getProperty("IP");
database = props.getProperty("DATABASE");
user = props.getProperty("USER");
pass = props.getProperty("PASS");
jdbc = props.getProperty("JDBC");
driver = props.getProperty("DRIVERNAME");
instance = props.getProperty("INSTANCE");
}
catch(Exception e){
System.out.println("error" + e);
}
}
static public DBInfo instance(){
if (_instance == null) {
_instance = new DBInfo();
}
return _instance;
}
}
现在,我们可以在应用程序中使用它:
DBInfo dbInfo = DBInfo.instance();
String connString = dbInfo.jdbc + "://" + dbInfo.ip + "\\" + dbInfo.instance +":" +
dbInfo.port + "; databaseName=" + dbInfo.database + "; userName=" +
dbInfo.user +"; passWord="+ dbInfo.pass +";";
如果客户想要更改 IP 地址、数据库端口或其他信息,他们只需要修改 db.properties 文件即可。