12/20/2013
12/18/2013
Configuring Apache 2.0 as a Forward Proxy Server
Edit the Apache httpd.conf Configuration File
1.設定 Port
Listen 8080
2.設定 Module
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
前三項為必要Module, 後面可依需求增減
3.設定 VirtualHost
<VirtualHost *:8080>
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from 192.168.0.0/16
</Proxy>
</VirtualHost>
4.重新啟動...
12/04/2013
Java Enum Singleton
Java 在 1.5 版本之後開始支援 Enumerated type,Enum 的用法可參考下面連結
http://www.ajaxonomy.com/2007/java/making-the-most-of-java-50-enum-tricks
http://javarevisited.blogspot.tw/2011/08/enum-in-java-example-tutorial.html
http://docs.oracle.com/javase/1.5.0/docs/guide/language/enums.html
使用 enum 實作 singleton,是一個不錯的方式,因 enum instance 預設狀態下就是 thread safe 的,所以使用 enum 來實作 singleton 是相當簡便的
範例
public enum Singleton {
INSTANCE;
public void someOperation() { .. }
}
參考
http://www.informit.co...
12/03/2013
Initialization-on-demand holder idiom
實做 Singleton 的方法有很多種,Java 1.5 以上可以使用 Double-checked locking,但使用鎖會影響程式效率,如何不用鎖又能達到 Singleton 呢? Initialization-on-demand holder 就是一種常見的程式技巧,以下列出 Eager initialization, Static block initialization 與 Initialization-on-demand holder 做比較
public class EagerInitialization {
public static final EagerInitialization INSTANCE = new EagerInitialization();
public static final String TEST = "test";
private EagerInitialization() {
System.out.println("constructor");
...
12/02/2013
Java Double-check locking idiom for lazy initialization of fields
注意 : Java 1.5 以上版本才可使用 雙檢鎖, 並要搭配 volatile 關鍵字
private static final Object LOCK = new Object();
private static volatile Singleton instance;
public static Singleton getInstance() {
Singleton result = instance;
if (result == null) {
synchronized (LOCK) {
result = instance;
if (result == null) {
instance = result = new Singleton();
}
}
}
return result;
}
區域變數 result 看起來是不必要的,但在某些版本的JVM,可以提升執行效...
Subscribe to:
Posts (Atom)