導航:首頁 > 文件目錄 > Java動態代理文件路徑

Java動態代理文件路徑

發布時間:2023-03-24 09:59:45

『壹』 java中的動態代理問題

Hello hl=(Hello)Proxy.newProxyInstance(Hello.class.getClassLoader(), Hello.class.getInterfaces(), new MyInvocationHandler(new HelloImp()));

這里的第2參數是錯的,應該是HelloImp類實現的介面,廳好Hello沒實現任何接桐拆口
或者直接寫成局伏棗new Class[]{Hello.class}

『貳』 JAVA中如何得到文件路徑

java文件中獲得路徑
Thread.currentThread().getContextClassLoader().getResource("") //獲得資源文件(.class文件)所在路徑
ClassLoader.getSystemResource("")
Class_Name.class.getClassLoader().getResource("")
Class_Name.class .getResource("/")
Class_Name.class .getResource("") // 獲得當前類所在路徑
System.getProperty("user.dir") // 獲得項目根目錄的絕對路徑
System.getProperty("java.class.path") //得到類路徑和包路徑
列印輸出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar

『叄』 java在linux下操作文件路徑怎麼寫

一般文件路徑在windows中用 \ 表示,但是在其他系統平台下比如linux中就不是 \ 所以java給我內們提供了一個與平台無容關的表示路徑的常量 File.separator在windows中則表示 \ 比如現在有一個文件在D:\java\src\myjava中, 如何用絕對路徑訪問呢?
現在建立一個目錄:
File fDir=new File(File.separator); //File.separator表示根目錄,比如現在就表示在D盤下。
String strFile="java"+File.separator+"src"+File.separator+"myjava"; //這個就是絕對路徑
File f=new File(fDir,strFile);

『肆』 java伺服器端「/「文件路徑如何書寫

樓主可以這樣寫【File.separator是java虛擬機根據當前的操作系統自動識別得到的文件路徑分隔符,例如windows是「」,linux是」/「】:

Filefile=newFile("files"+File.separator+"temp"+File.separator+"test.txt");

『伍』 JAVA動態代理設計原理及如何實現

Java動態代理機制的出現,使得Java開發人員不用手工編寫代理類,只要簡單地制定一組介面及委託類對象,便能動態地獲得代理類。代理類會負責將所有的方法調用分配到委託對象上反射執行,配置執行過程中,開發人員還可以進行修改

代理設計模式

代理是一種常用的設計模式,其目的就是為其他對象提供一個代理以控制對某個對象的訪問。代理類負責為委託類預處理消息、過濾消息並轉發消息,以及進行消息被委託類執行後的後續處理。

  1. 為了保持行為的一致性,代理類和委託類通常會實現相同的介面

2. 引入代理能夠控制對委託對象的直接訪問,可以很好的隱藏和保護委託對象,也更加具有靈活性

代理機制及其特點

首先讓我們來了解一下如何使用 Java 動態代理。具體有如下四步驟:

  1. 通過實現 InvocationHandler 介面創建自己的調用處理器;

  2. 通過為 Proxy 類指定 ClassLoader 對象和一組 interface 來創建動態代理類;

  3. 通過反射機制獲得動態代理類的構造函數,其唯一參數類型是調用處理器介面類型;

  4. 通過構造函數創建動態代理類實例,構造時調用處理器對象作為參數被傳入。

代理類實例的一些特點

  1. 每個實例都會關聯一個InvocationHandler(調用處理器對象),在代理類實例上調用其代理介面中聲明的方法時,最終都會由InvocationHandler的invoke方法執行;

  2. java.lang.Object中有三個方法也同樣會被分派到調用處理器的 invoke 方法執行,它們是 hashCode,equals 和 toString;

代碼示例

最後以一個簡單的動態代理例子結束

『陸』 如何獲得當前Java文件的路徑

public class Test {
public static void main(String[] args) {
String path = "Test.java";
File file = new File(path);
System.out.println(file.getAbsoluteFile());
}
}

-----
運行結果:
D:\workspaces\studyStruts2\Test.java
不加任何路徑,就是指當版前路徑
望採納權

『柒』 Java 編寫IP動態代理

package com.tan.test;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;

import org.apache.log4j.Logger;

public class TestProxyIp {
private static final Logger log = Logger.getLogger(TestProxyIp.class);

public static void main(String[] args) throws IOException {
System.setProperty("http.maxRedirects", "50");
System.getProperties().setProperty("proxySet", "true");
// 如果不設置,只要代理IP和代理埠正確,此項不設置也可以
String ip = "59.175.192.126";
ip = "221.214.180.130";
ip = "122.224.171.91";
ip = "58.221.213.166";
ip = "202.106.16.36";
ip = "121.8.191.34";
ip = "222.208.242.30";
ip = "219.239.90.85";
ip = "60.31.177.188";
System.getProperties().setProperty("http.proxyHost", ip);
System.getProperties().setProperty("http.proxyPort", "3128");

//確定代理是否設置成功
log.info(getHtml("http://www.ip.cn/"));
//log.info(getHtml("http://20140507.ip138.com/ic.asp"));

}

private static String getHtml(String address){
StringBuffer html = new StringBuffer();
String result = null;
try{
URL url = new URL(address);
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; NT 5.1; GTB5; .NET CLR 2.0.50727; CIBA)");
BufferedInputStream in = new BufferedInputStream(conn.getInputStream());

try{
String inputLine;
byte[] buf = new byte[4096];
int bytesRead = 0;
while (bytesRead >= 0) {
inputLine = new String(buf, 0, bytesRead, "UTF-8");
/*if (!"".equals(inputLine)) {
System.out.println(inputLine);
}*/

html.append(inputLine);
bytesRead = in.read(buf);
inputLine = null;
}
buf = null;
}finally{
in.close();
conn = null;
url = null;
}
//result = new String(html.toString().trim().getBytes("ISO-8859-1"), "UTF-8").toLowerCase();
//result=new String(html.toString().trim().getBytes("ISO-8859-1"), "GBK");

}catch (Exception e) {
e.printStackTrace();
return null;
}/*finally{
html = null;
}*/
return html.toString();
}
}

但是找不到有用的動態ip。

『捌』 java動態代理怎樣實現

動態代理設計到java的一個底層代碼,源代碼看不到,cglib也可實現動態代理和動態繼承,不必對他的底層深究,涉及到編譯原理啦

『玖』 如何獲得Java動態代理的代理類

JDK 代理生成器,在生成類是會根據參猛則橡數「sun.misc.ProxyGenerator.saveGeneratedFiles」來決定是否將二進盯御制保存到本地文件中,
具體的路徑查看源碼:
ProxyGenerator.access$000(this.val$name) + ".class"
根枝旁據access$000這個方法生成的路徑來保存

在openjdk中這個access$000 是對應

private static String dotToSlash(String name) {
return name.replace('.', '/');
}

『拾』 java動態代理是什麼

import java.lang.reflect.Proxy;
A. 創建一個實現介面InvocationHandler的類,他必須實現invoke方法
B. 創建被代理的類以及介面。
C. 通過Proxy的靜態方法newProxyInstance(ClassLoader loader,Class【】interfaces,InvocationHandler handler)創建一個代理
D. 通過代理調用方法。
java動態代理:是在運行是生成的class對象,在生成時必須提供一組或一個interface給它,然後該class就宣稱它實現了這些interface。你當然可以把該class的實例當做這些interface中的任何一個來用,當然,這個DynamicProxy其實就是一個Proxy,他不會替你做實質性的工作,在生成它的實例時你必須提供一個handler,由它接管實際的工作。因此,DynamicProxy必須實現InvocationHandler介面。
5) 一個動態代理了和一個InvocationHandler 實現關聯的。每一個動態代理實例的調用都要通過InvocationHandler介面的handler(調用處理器)來調用,動態代理不做任何執行操作,只是在創建動態代理時,把要實現的介面和handler關聯,動態代理要幫助被代理執行的任務,要轉交給handler來執行。其實就是調用invoke方法。

閱讀全文

與Java動態代理文件路徑相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接