Co to jest "nowe wiosną 2.0?
Wyjaśnia, w prosty bezpośrednie Rod Johnson z prezentacji przygotowanych przez niego w pewnym miał spotkanie z "australijski Spring User Group w grudniu ubiegłego roku.
Maven 2.0.5 Released: wreszcie!
Po około 10 miesięcy ciszy, ostatecznie wersji 2.0.5 z Maven. I wyznam, że miałem zaczęły mieć poważne podejrzenia i wątpliwości dotyczące pewnych zmian w projekcie, ponieważ ... Również 2.0.4 z problemini miał sporo ...
W najbliższych dniach postaram się to dokładnie przeanalizować, aby zobaczyć, jak wiele problemów rzeczywiście zostały ustalone, chociaż patrząc na wersji nie wydaje mi się, że duża ...
MBean na zmiany w poziomie gorąco dzienniki Log4j
Zmiana gorąco (tzn. bez ponownego uruchamiania "Application Server) jest jednym z wymogów zazwyczaj częstsze w rozwoju aplikacji w języku Java.
Z czasem będę mógł zobaczyć i wypróbować różne rozwiązania (mniej lub bardziej eleganckie), ale w większości były dość długie i skomplikowane, i fakt ten jest zawsze obwodów w plikach konfiguracyjnych lub servlet ręcznie przez wywołanie przeładować plik log4j.properties lub log4j.xml zmianie.
Dzisiaj z pomocą Spring, aw szczególności klasy org.springframework.jmx.export.MBeanExporter ", staje się naprawdę łatwe do stworzenia MBean mogą wystawiać wszystkie metody potrzebne do manipulowania gorący" Logger ".
Kontynuuj czytanie
Uruchamianie z chronionego lub prywatnych klasy Java: upewnij się, że jest to niemożliwe?
Prawidłowa odpowiedź brzmi: "zależy na obecności lub braku bezpieczeństwa menedżer."
W rzeczywistości, poprzez refleksji jest faktycznie możliwe, aby przejść do obowiązujących ograniczeń w języku Java bez większych trudności, ammenochè nie tylko Security Manager, jedynym aktorem w stanie zarządzać rzeczywiście i ostatecznie zatrzymać tych rodzajów sił.
Ale mamy przykład, że warto wiele debat. Biorąc pod uwagę następujące klasy:
package net.nothing2hide.test; public class ClassWithMethodsToHack { private void sayHello(String name){ System.out.println("Hello " + name + "! You're calling a private method"); } } chcemy, aby wykazać, jak łatwo być stosowane poza prywatnych metoda sayHello jak przewidywano go używać silnie refleksji:
package net.nothing2hide.test; public class PrivateMethodInvocationTest { /** * This sample class demonstrates how to * invoke a protected method on another class * * @param args */ public static void main(String[] args) { String myName = "Davide"; Method m; try { //Let'access the private method //by reflection. You could do the same //with a protected method m = ClassWithMethodsToHack.class.getDeclaredMethod( "sayHello", new Class[]{String.class}); if (m != null) { //Let's force the java language access //checks on the reflected method. Note //that if a security manager is defined //this workaround could not be permitted //and a SecurityException could be raised m.setAccessible(true); //And finally let's invoke the protected method m.invoke(new ClassWithMethodsToHack(), new Object[]{myName}); } } catch (Exception e) { e.printStackTrace(); } } } 





