① java 多線程怎麼讀取一個表了的多個配置
沒看懂,個人覺得你的一條記錄就是一個配置信息,對應一個配置對象
資料庫就是存儲記錄的地方, 每次從資料庫取自然就會取到最新的所有記錄,也就是所有的配置項。
你的配置是縱向增加的,1個配置、2個配置、...、n個配置,沒什麼問題,資料庫增加一行就行
配置是橫向增加的,那你的配置對象就要變化了
而且這個跟線程池也沒什麼關系吧,或者你只是想來實現一個定時任務不斷刷新,springboot注入個@Schele也行
② Java Web 編譯的異常問題
org.apache.catalina.core.standardhostdeployer安裝
信息:加工語境配置文件的url文件中: f : \雅加達-雄貓- 5.0.19 \ conf設置\ catalina女士\ localhost \ webmole1.xml
2007年11月9日15時15分37秒org.apache.catalina.core.standardcontext resourcesstart
嚴重:錯誤的出發靜態資源
java.lang.illegalargumentexception :文件中的c : \文件和設置\管理員\桌面\ untitled2 \ webmole1不存在,或者是不是一個可讀目錄
在org.apache.naming.resources.filedircontext.setdocbase ( filedircontext.java : 185 )
在org.apache.catalina.core.standardcontext.resourcesstart ( standardcontext.java : 3856 )
在org.apache.catalina.core.standardcontext.start ( standardcontext.java : 4084 )
在org.apache.catalina.core.containerbase.addchildinternal ( containerbase.java : 866 )
在org.apache.catalina.core.containerbase.addchild ( containerbase.java : 850 )
在org.apache.catalina.core.standardhost.addchild ( standardhost.java : 638 )
在org.apache.catalina.core.standardhostdeployer.addchild ( standardhostdeployer.java : 839 )
在sun.reflect.nativemethodaccessorimpl.invoke0 (原法)
在sun.reflect.nativemethodaccessorimpl.invoke ( nativemethodaccessorimpl.java : 39 )
在sun.reflect.delegatingmethodaccessorimpl.invoke ( delegatingmethodaccessorimpl.java : 25 )
在java.lang.reflect.method.invoke ( method.java : 585 )
在org.apache.commons.beanutils.methotils.invokemethod ( methotils.java : 252 )
在org.apache.commons.digester.setnextrule.end ( setnextrule.java : 256 )
在org.apache.commons.digester.rule.end ( rule.java : 276 )
在org.apache.commons.digester.digester.endelement ( digester.java : 1058 )
在org.apache.catalina.util.catalinadigester.endelement ( catalinadigester.java : 123 )
在org.apache.xerces.parsers.abstractsaxparser.endelement (未知源)
在org.apache.xerces.impl..scanendelement (未知源)
在org.apache.xerces.impl.元fragmentcontentdispatcher.dispatch (未知源)
問題補充:嚴重:誤差在resourcestart ( )
2007年11月9日15時15分37秒org.apache.catalina.core.standardcontext開始
嚴重:錯誤getconfigured
2007年11月9日15時15分37秒org.apache.catalina.core.standardcontext開始
嚴重:背景下啟動,但未成功,因為先前的錯誤
2007年11月9日15時15分37秒org.apache.catalina.core.standardcontext開始
嚴重:除在清理過程後,開始失敗
lifecycleexception :集裝箱standardcontext [ / webmole1 ]尚未開始
在org.apache.catalina.core.standardcontext.stop ( standardcontext.java : 4400 )
在org.apache.catalina.core.standardcontext.start ( standardcontext.java : 4298 )
在org.apache.catalina.core.containerbase.addchildinternal ( containerbase.java : 866 )
在org.apache.catalina.core.containerbase.addchild ( containerbase.java : 850 )
在org.apache.catalina.core.standardhost.addchild ( standardhost.java : 638 )
在org.apache.catalina.core.standardhostdeployer.addchild
( standardhostdeployer.java : 839 )
可以看出你的文件沒有存在或文件的路徑不能出現中文~!!!
③ java 通過反射怎麼獲取方法中參數值
public <T> T invokeMethod(String beanName, String methodName,
Class<?>[] paramTypes, Object... parameters) {
try {
Object bean = ApplicationContextHolder.getBean(beanName);
Class<? extends Object> beanClass = bean.getClass();
// Method method = beanClass.getDeclaredMethod(methodName,
// paramTypes);
// Method m0 = ClassUtils.getPublicMethod(beanClass, beanName,
// paramTypes);
Method method = null;
Method[] ms = beanClass.getMethods();
for (Method m : ms) {
String mName = m.getName();
if (StringUtils.equals(methodName, mName)) {
boolean isThis = true;
Class<?>[] pt = m.getParameterTypes();
if (paramTypes.length == pt.length) {
int plength = paramTypes.length;
if (plength == 0) {
isThis = true;
} else {
for (int i = 0; i < plength; i++) {
boolean ff = pt[i]
.isAssignableFrom(paramTypes[i]);
if (!ff) {
isThis = false;
break;
}
}
}
} else {
isThis = false;
}
if (isThis) {
method = m;
break;
}
}
}
if (method == null) {
throw new NoSuchMethodException(beanName + "." + methodName);
}
Object obj = null;
if (parameters == null || parameters.length < 1) {
obj = method.invoke(bean);
} else {
obj = method.invoke(bean, parameters);
}
T out = (T) obj;
return out;
} catch (SecurityException e) {
log.error(DataTypeConstant.MOD_CODE_SUBTYPE2, "", e);
} catch (IllegalArgumentException e) {
log.error(DataTypeConstant.MOD_CODE_SUBTYPE2, "", e);
} catch (IllegalAccessException e) {
log.error(DataTypeConstant.MOD_CODE_SUBTYPE2, "", e);
} catch (InvocationTargetException e) {
log.error(DataTypeConstant.MOD_CODE_SUBTYPE2, "", e);
} catch (NoSuchMethodException e) {
log.error(DataTypeConstant.MOD_CODE_SUBTYPE2, "", e);
}
return null;
}
上面是一個完整的通過bean的名稱和方法名稱來調用該bean下的一個方法的方法。應該對你有所幫助!
④ java 反射數組參數方法 如何反射
1)Reflection 是 Java 程序開發語言的特徵之一,它允許運行中的 Java 程序對自身進行檢查,或者說「自審」,並能直接操作程序的內部屬性。Java 的這一能力在實際應用中也許用得不是很多,但是在其它的程序設計語言中根本就不存在這一特性。例如,Pascal、C 或者 C++ 中就沒有辦法在程序中獲得函數定義相關的信息。
2)考慮下面這個簡單的例子,讓我們看看 reflection 是如何工作的。
import java.lang.reflect.*;
public class DumpMethods {
public static void main(String args[]) {
try {
Class c = Class.forName(args[0]);
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
} catch (Throwable e) {
System.err.println(e);
}
}
}
按如下語句執行:
java DumpMethods java.util.Stack
它的結果輸出為:
public java.lang.Object java.util.Stack.push(java.lang.Object)
public synchronized java.lang.Object java.util.Stack.pop()
public synchronized java.lang.Object java.util.Stack.peek()
public boolean java.util.Stack.empty()
public synchronized int java.util.Stack.search(java.lang.Object)
3)反射的概念是由Smith在1982年首次提出的,主要是指程序可以訪問、檢測和修改它本身狀態或行為的一種能力。這一概念的提出很快引發了計算機科學領域關於應用反射性的研究。它首先被程序語言的設計領域所採用,並在Lisp和面向對象方面取得了成績。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基於反射機制的語言。最近,反射機制也被應用到了視窗系統、操作系統和文件系統中。
⑤ java反射有哪些用途
j2ee中的其他組建,JAVA的反射是指,可以通過一個類名來探察這個類裡面的信息,比如說類的屬性名,屬性名的修飾符,方法名,方法返回值,方法修飾符等等,反正除了方法體得不到,其他都可以用反射得到;反射還可以生成類的實例,通過這個實例定義屬性,調用方法,特別是能調用私有的屬性和私有的方法。
Object obj = Class.forName("").newInstance();
public void invokeMethod(Object obj, String methodName, Object[] param)
throws Exception {
Class clazz = obj.getClass();
Class[] classArgs = new Class[param.length];
for (int i = 0; i < param.length; i++) {
classArgs[i] = param[i].getClass();
}
Method method = clazz.getMethod(methodName, classArgs);
method.invoke(obj, param);
}