Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
OSGiÈëÃÅÆª£ºÄ£¿é²ã
 
×÷Õß Gou Rui £¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-10-22
  3090  次浏览      31
 

1 ʲôÊÇÄ£¿é»¯

Ä£¿é²ãÊÇOSGi¿ò¼ÜÖÐ×î»ù´¡µÄÒ»²¿·Ö£¬ÆäÖÐJavaµÄÄ£¿é»¯ÌØÐÔÔÚÕâÒ»²ãµÃµ½Á˺ܺõÄʵÏÖ¡£µ«ÊÇÕâÖÖʵÏÖÓëJava±¾ÉíÏÖÓеÄһЩģ¿é»¯ÌØÐÔÓÖÓÐÃ÷ÏԵIJ»Í¬¡£ ±¾ÎĽéÉÜÄ£¿é²ãµÄһЩ»ù´¡ÖªÊ¶£¬ÒÔ¼°OSGiÁªÃËÔÚÉè¼ÆÄ£¿é²ãʱËù×öµÄһЩ¿¼ÂÇ¡£OSGi±ê×¼×ßµ½½ñÌ죬²¢²»ÊÇÆ¾¿ÕÏë³öÀ´µÄ£¬ËüµÄ²úÉúǡǡÊÇΪÁËÃÖ²¹Ö®Ç°Ò»Ð©¼¼ÊõµÄȱÏÝ¡£

Ä£¿é»¯Æäʵ¾ÍÊǼÆËã»ú¿ÆÑ§Öг£¼ûµÄÒ»¸ö¸ÅÄ ¡°½«Ò»¸ö´óÐÍϵͳ·Ö½âΪ¶à¸ö½ÏСµÄ»¥ÏàЭ×÷µÄÂß¼­µ¥Ôª£¬Í¨¹ýÇ¿ÖÆÉ趨ģ¿éÖ®¼äµÄÂß¼­±ß½çÀ´¸ÄÉÆÏµÍ³µÄά»¤ÐԺͷâ×°ÐÔ¡±¡£

ÔÚOSGiÖÐÄ£¿éµÄ¶¨Òå¿ÉÒԲο¼ÏÂͼ£º

Ò²¾ÍÊÇ˵һ¸öÄ£¿é£¨module£©¶¨ÒåÁËÒ»¸öÂß¼­±ß½ç£¬ÕâÖÖÄ£¿é±¾Éí¾«È·µÄ¿ØÖÆÁËÄÄЩÀàÊÇÍêÈ«±»·â×°ÆðÀ´µÄ£¬¶øÄÄЩÀàÐèÒª±©Â¶³öÀ´×÷ΪÍⲿʹÓá£ÕâÑùÎÒÃǾͿÉÒÔÇáËɵĽ«ÊµÏÖÆÁ±ÎÔÚÄ£¿éµÄÄÚ²¿£¬¶ø½«¹«¹²API±©Â¶ÔÚÍⲿ¡£

2 ΪʲôÐèҪģ¿é»¯

2.1 OSGiÖÐÄ£¿é»¯ÓëÃæÏò¶ÔÏóµÄÁªÏµÓëÇø±ð

°´ÕÕÒÔÉÏÄ£¿é»¯µÄ¶¨Ò壬¿ÉÄÜÓеÄÈË»áÎÊ£º¡°ÔÚÃæÏò¶ÔÏóÀïÃæ£¬²»ÊÇÒ²ÓжÔÄ£¿é»¯µÄÖ§³ÖÂ𣿡±Ã»´í£¬ÃæÏò¶ÔÏóµÄ¸ÅÄî¿ÉÒÔ˵ҲÔÚÒ»¶¨³Ì¶ÈÉÏÖ§³ÖÄ£¿é»¯±à³Ì£¬ÄÇΪʲô»¹ÐèÒªOSGiÌṩµÄÄ£¿é»¯ÌØÐÔÄØ£¿ÕâÉæ¼°µ½¡°Âß¼­±ß½ç¡±µÄ²»Í¬Á£¶È¡£

ÔÚÓÃJava±àÐ´ÃæÏò¶ÔÏó³ÌÐòµÄʱºò£¬Ò»¸öÁ˽âÃæÏò¶ÔÏó¸ÅÄîµÄÈËÊDz»»á°ÑËùÓй¦Äܶ¼Èûµ½Í¬Ò»¸öÀàÀïÃæÈ¥µÄ£¬ÃæÏò¶ÔÏóÈÃÄã´ÓÎÊÌâÓòÖз¢ÏÖ¶à¸öÊÂÎ²¢ÇÒÿ¸öÊÂÎ︺Ôð²»Í¬µÄ¹¦ÄÜ£¬¾¡Á¿×öµ½¸ßÄھۺ͵ÍñîºÏ¡£ÔÚÕâÀÎÒÃÇ¿ÉÒÔËµÃæÏò¶ÔÏóµÄÄ£¿é»¯Á£¶ÈÊÇÔÚ¡°ÀࡱÕâ¸ö¼¶±ðÉÏ¡£
¶øOSGiµÄÄ£¿é»¯£¬ÔòÊÇͨ¹ýΪJAR°üÌí¼ÓmetadataÀ´¶¨ÒåÄÄЩÀàÓ¦¸Ã±©Â¶ÄÄЩÀàÓÖÒþ²ØÔÚ°üÖУ¬Æä¿ØÖƿɼûÐÔµÄÁ£¶ÈÊÇÔÚbundle£¨JAR°ü£©ÕâÒ»²ãÃæÉϵġ£

ËùÒÔ£¬ËüÃÇËù´øÀ´µÄÄÜÁ¦¶¼ÊÇͨ¹ý¿ØÖƿɼûÐԺͿÉÓÃÐÔÀ´±£Ö¤¸ßÄھۺ͵ÍñîºÏµÄ£¬µ«ÊÇÁ£¶È²»Í¬£¬Ò»¸öÊǶÔÏó²ãÃæÉϵģ¬Ò»¸öÊÇÄ£¿é²ãÃæÉϵġ£ ¼ÈÈ»¸ºÔðµÄÊDz»Í¬µÄÁ£¶È£¬ÄÇôÁ½Õß²¢²»Ï໥³åÍ»£¬¸÷Óи÷µÄ×÷ÓÃÔÚÀïÃæ¡£

2.2 JavaÔÚÄ£¿é»¯·½ÃæµÄ¾ÖÏÞÐÔ

2.2.1 µ×²ã´úÂë¿É¼ûÐÔ¿ØÖÆ

JavaÌṩÁËprivate£¬public£¬protectedºÍpackage private£¨ÎÞÐÞÊηû£©ÕâËÄÖÖ·ÃÎÊ¿ØÖƼ¶±ð£¬²»¹ýÕâ½ö½öÌṩÁ˵ײãµÄOOÊý¾Ý·â×°ÌØÐÔ¡£°üÕâ¸ö¸ÅÄîȷʵÊÇÆðµ½ÁË·Ö¸î´úÂëµÄ×÷Ó㬵«ÊÇÈç¹û°üÖеĴúÂëÐèÒª¶Ô°üÍâ¿É¼û£¬ÄÇô±ØÐëÉèÖÃΪpublic£¨»òÕßprotected£¬Èç¹ûÊÇʹÓÃÁ˼̳еϰ£©¡£ ÕâÑùµÄ»°¾Í¿ÉÄܳöÏÖÒ»¸öÎÊÌ⣺

Ê×ÏÈ´ó¼Ò¿´¿´ÏÂÃæµÄÀý×Ó£¬ÆäÖÐÓÐÈý¸öjavaÎļþ£º

org.serc.helloworld.Hello.java£º¶¨ÒåÁËÒ»¸ö½Ó¿Ú

package org.serc.helloworld;  

public interface Hello {  
void sayHello();  
}

org.serc.helloworld.impl.HelloImpl.java£ºÊµÏÖÁËHello½Ó¿Ú

package org.serc.helloworld.impl;

import org.serc.helloworld.Hello;

public class HelloImpl implements Hello{
final String helloString;

public HelloImpl(String helloString){
    this.helloString = helloString;
}

public void sayHello(){
    System.out.println(this.helloString);
}
}

org.serc.helloworld.main.Main.java    
package org.serc.helloworld.main;

import org.serc.helloworld.Hello;
import org.serc.helloworld.HelloImpl;

public class Main{
final String helloString;

public static void main(String[] args){
    Hello hello = new HelloImpl(¡°Hello,SERC!¡±);
    hello.sayHello();
}

ÕâÈý¸öÎļþ·Ö±ðÔÚ²»Í¬µÄ°üÖС£°´Àí˵£¬HelloImplÕâ¸öʵÏÖϸ½ÚÊDz»Ó¦¸Ã±©Â¶¸øÆäËû°üµÄ£¬µ«ÊÇ´ÓMain.javaµÄmain·½·¨ÖÐÎÒÃÇ¿ÉÒÔÃ÷ÏԵĿ´³ö£¬ÎªÁË´´½¨Hello µÄʵÀý£¬ÎÒÃDz»µÃ²»ÒýÈëHelloImplÀ࣬µ«ÊÇHelloImpl×÷Ϊ½Ó¿ÚµÄʵÏÖϸ½Ú£¬ÊDz»Ó¦¸Ã±©Â¶¸øÊ¹ÓÃÕߵģ¬ÕâÎ¥·´ÁË·â×°µÄÔ­Ôò£¬ÏÔÈ»²»Ì«ºÃ¡£

µ«ÊÇ£¬Èç¹ûÎÒÃDz»ÏëÈÃHelloImpl±©Â¶³öÀ´µÄ»°£¬¾ÍÐèÒª×ö¶îÍâµÄ¹¤×÷À´±£Ö¤¡°¼ÈÒþ²ØÁËʵÏÖϸ½Ú£¬ÓÖÄܼòµ¥µÄ´´½¨Ò»¸öʵÏÖÁËHello½Ó¿ÚµÄʵÀý¡±¡£´ïµ½ÕâһĿµÄµÄ·½·¨²»Ö¹Ò»ÖÖ£¨±ÈÈ繤³§Ä£Ê½£©£¬ÓÐЩÖÁ½ñÒ²ÊǺܳ£Óõ쬵«ÊÇÕâÔö¼ÓÁËÓëÓ¦Óñ¾Éí¹¦ÄÜÎ޹صĶàÓ๤×÷£¬ÏëÏëÈç¹ûÄãÿ´ÎÏ뿪·¢Ò»¸öÓ¦Óö¼ÒªÎªÁË´ïµ½ÉÏÊöÄ¿µÄ¶ø×ö³ö¶àÓ๤×÷£¬²»µÃ²»ËµÊÇÓе㷱ËöµÄ£¬ËùÒÔÕâ¿ÉÒÔ˵ÊÇJavaµÄÒ»´ó¾ÖÏÞ¡£

2.2.2 classpathµÄ¾ÖÏÞ

ÎÒÃÇÔÚclasspathÖмÓÈëjar°üµÄʱºò£¬Ö»ÊǼòµ¥µÄ¸ø³öÎļþ·¾¶£¬¶øÕâ¸öjar°üµÄ°æ±¾ºÍÒ»ÖÂÐÔ£¬ËüËùÒÀÀµµÄjar°üÊÇʲô£¬ÎÒÃǶ¼ÎÞ·¨ÔÚclasspathÖÐÃ÷È·µÄÉèÖûòÊÇ´ÓclasspathÖп´³öÕâЩÊôÐÔ¡£
²¢ÇÒclasspathÖеÄjar°üÊǰ´Ðò¼ÓÔØµÄ£¬ÀýÈ磺

classpath£½c:\servlet2.2\servlet.jar£»c:\servlet2.3\servlet.jar£¬

ÄÇôÔÚʵ¼ÊÓ¦ÓõĹý³ÌÖУ¬JavaÈÃÄãʹÓõÄÊÇservlet2.2£¬¶ø²»ÊÇservlet2.3¡£ÕâÖÖÇé¿öÏÂÎÒÃÇ»¹ÄÜ¿´³öÀ´Ê¹ÓõÄÊÇÄĸö°æ±¾£¬Èç¹ûÔÚ´óÐÍϵͳÖдó¼Ò·Ö¿ª¿ª·¢µÄʱºò¸÷Óø÷µÄservlet°ü£¬²¢ÇÒ°æ±¾ºÅ²»Ò»Ñù£¬ÄÇôÔÚ×îºó½«¿ª·¢½á¹ûºÏ²¢µÄʱºò£¬µ½Ê±ºòÓõÄÊÇÄĸö°æ±¾µÄservlet°ü¾ÍºÜÄѸãÇå³þÁË£¬Ò²¾Í˵²»¿É¿ØÐÔÊDZȽÏÇ¿µÄ¡£

¼´Ê¹classpathÄÜ×¢Òâµ½°æ±¾µÄÎÊÌ⣬Ҳû·¨¾«È·Ö¸³öÒÀÀµ¡£ÊÔ×Å»ØÏëÄãÔÚÉèÖÃclasspathµÄ¹ý³ÌÖгöÏÖ¹ýÇé¿ö£ºÔÚÄãÒÔΪclasspathÒѾ­ÉèÖÃÍê±ÏÒÔºó£¬Äã³¢ÊÔÆô¶¯³ÌÐò£¬½á¹ûÐéÄâ»úÅ׳öÒì³£¸æËßÄãȱ°ü£¬È»ºóÄãÔÙ¼ÓÉÏÄã¾õµÃȱÉÙµÄÄÇЩ°ü£¬È»ºóÔÙÆô¶¯³ÌÐò£¬Èç´Ë·´¸´Ö±µ½ÐéÄâ»ú²»ÔËÐе½È±°üÒ쳣Ϊֹ¡£

2.3 OSGi¶ÔÕâЩ¾ÖÏÞÐԵĸÄÉÆ

¶ÔÓÚÉÏһС½ÚÌáµ½µÄJavaµÄ¾ÖÏÞ£¬ÔÚOSGiÖж¼µÃµ½Á˺ܺõĽâ¾ö¡£

°üµÄ¿É¼ûÐÔ£ºOSGiͨ¹ýÒýÈë°üµÄ¿É¼ûÐÔ»úÖÆ£¬Äܹ»ÍêÈ«¿ØÖÆÒ»¸ö°üÖеĴúÂë¶ÔÄÄЩģ¿é¿É¼û£¬¶ø²»½ö½ö¾ÖÏÞÓÚÎÞ²î±ðµÄ¿É¼ûÐÔ£¬´Ó¶øÍêÉÆÁËJavaµÄ´úÂë·ÃÎÊ¿ØÖÆ»úÖÆ¡£

°üµÄ°æ±¾£º OSGiͨ¹ýΪ°üÔö¼Ó°æ±¾ÐÅÏ¢£¬¿ÉÒÔ¾«È·¿ØÖÆ´úÂëµÄÒÀÀµ£¬±£Ö¤´úÂëµÄ°æ±¾Ò»ÖÂÐÔ£¬ÃÖ²¹ÁËclasspathµÄȱµã¡£

3 OSGiÄ£¿é²ã»ù´¡

3.1 BundleµÄ¸ÅÄî

ÕâÊÇÄ£¿é²ã×îºËÐĵĸÅÄҲÊÇÄ£¿é£¨module£©Õâ¸ö¸ÅÄîÔÚOSGiÖеľßÏó±íÏÖ¡£½ÓÏÂÀ´Ä㽫»áÔÚOSGiµÄÊÀ½çÖд´½¨ºÍʹÓÃÊý²»Ê¤ÊýµÄbundle¡£
ʲôÊÇbundle£¿¡ª¡ªbundleÊÇÒÔjar°üÐÎʽ´æÔÚµÄÒ»¸öÄ£¿é»¯ÎïÀíµ¥Ôª£¬ÀïÃæ°üº¬ÁË´úÂ룬×ÊÔ´ÎļþºÍÔªÊý¾Ý£¨metadata£©£¬²¢ÇÒjar°üµÄÎïÀí±ß½çҲͬʱÊÇÔËÐÐʱÂß¼­Ä£¿éµÄ·â×°±ß½ç¡£

Ò»¸ö¸üΪֱ¹ÛµÄ˵Ã÷£ºÔÚ±ê×¼µÄjar°üµÄmanifestÎļþÖÐÌí¼ÓһЩbundleµÄÄ£¿é»¯ÌØÕ÷£¨¾ÍÊÇÇ°ÃæÌáµ½µÄmetadata£©ºó£¬Õâ¸öjar°ü¾Í±ä³ÉÁËÒ»¸öbundle¡£
ÄÇôÓÐÁËÉÏÃæµÄÃèÊö£¬Äã´ó¸ÅÒ²ÄÜÏëµ½£¬bundleºÍÆÕͨjar°ü×î´óµÄÇø±ð¾ÍÔÚÓÚÔªÊý¾Ý¡£

3.2 ʹÓÃÔªÊý¾ÝÀ´¶¨Òåbundle

BundleÔªÊý¾ÝµÄÄ¿µÄÔÚÓÚ׼ȷÃèÊöÄ£¿é»¯Ïà¹ØµÄbundleÌØÕ÷£¬ÕâÑù²ÅÄÜÈÃOSGi¿ò¼ÜÇ¡µ±µÄ¶Ôbundle½øÐи÷ÖÖ´¦Àí¹¤×÷£¨±ÈÈçÒÀÀµ½âÎö£¬Ç¿ÖÆ·â×°µÈ£©£¬ÕâЩԪÊý¾ÝÖ÷ÒªÓÐÕâÈý¸ö²¿·Ö£º

¿É¶ÁµÄÐÅÏ¢£¨¿ÉÑ¡£©£º°ïÖú¸üºÃµØÀí½âºÍʹÓÃbundle

bundleµÄ±êʶ·û£¨±ØÐ룩£ºÎ¨Ò»µÄ±êʶһ¸öbundle

´úÂë¿É¼ûÐÔ£¨±ØÐ룩£º¶¨ÒåÄÚ²¿ÓëÍⲿ´úÂë

3.2.1 ¿É¶ÁµÄÐÅÏ¢

ÕâЩÄÚÈÝ¿ÉÒÔ°ïÖúÈËÃÇÖ±¹ÛµÄÁ˽âÕâ¸öbundleÊÇ×öʲôµÄ£¬´ÓÄÄÀïÀ´¡£OSGi±ê×¼¶¨ÒåÁ˼¸¸öÔªÊý¾ÝÌõÄ¿À´´ïµ½Õâ¸öÄ¿µÄ£¬µ«ÊÇËùÓеÄÌõÄ¿¶¼²»ÊDZØÐëµÄ£¬²¢ÇÒÒ²²»¶ÔÄ£¿é»¯ÌØÐÔ²úÉúÈκεÄÓ°Ï죬OSGi¿ò¼Ü»áÍêÈ«ÎÞÊÓÕâЩÄÚÈÝ¡£

ÏÂÃæ¾ÍÊÇÒ»¸öÕâÀàÐÅÏ¢µÄÀý×Ó£º

Bundle-Name: SERC Helloworld
Bundle-Vendor: GR, SERC
Bundle-DocURL: http://elevenframework.org
Bundle-Category: example
Bundle-Copyright: SERC

3.2.2 bundleµÄ±êʶ·û

ÔÚÉϸöС½ÚÌáµ½µÄ¿É¶ÁÐÅÏ¢ÖУ¬ÓÐÐ©ËÆºõÒ²ÄÜÓÃÀ´Î¨Ò»±êʶһ¸öbundle£¬±ÈÈçBundle-Name£¬µ«ÊÇÊÂʵÉÏ£¬Ëû²¢Ã»Óб»ÓÃÀ´±êʶһ¸öbundle¡£ÔçÆÚµÄOSGi±ê×¼Öв¢Ã»ÓÐÌṩ±êʶһ¸öÒÑÖªbundleµÄ·½·¨£¬Ö±µ½OSGi R4±ê×¼¡°Î¨Ò»bundle±êʶ·û¡±Õâ¸ö¶«Î÷²Å±»Ìá³öÀ´¡£ÎªÁËÏòºó¼æÈÝ£¬Bundle-Name¾Í²»ÄÜÓÃÀ´×÷Ϊ±êʶ·ûÁË£¬·ñÔò¾Í»áÔö¼Óά»¤Ïòºó¼æÈݵŤ×÷£¬ËùÒÔеÄmanifestÊôÐԾ͵®ÉúÁË£ºBundle-SymbolicName

Bundle-SymbolicName: org.serc.helloworld

Á½ÕßÏà±È£¬Bundle-NameÊǸøÓû§¶ÁµÄ£¬¶øBundle-SymbolicNameÊǸøOSGi¿ò¼Ü¶ÁµÄ£¬ÈÃOSGi¿ò¼ÜÄܹ»Î¨Ò»±êʶһ¸öbundle¡£

Ö»ÓÃÒ»¸öBundle-SymbolicName¿Ï¶¨ÊÇ¿ÉÒÔΨһ±êʶһ¸öbundleÁË£¬µ«ÊÇËæ×Åʱ¼äµÄÍÆÒÆ£¬ÄãµÄbundle¿ÉÄÜ»áÓÐа汾£¬Õâʱºò¼ÓÈë°æ±¾ÊôÐÔ»áÈÃÄãµÄbundleµÄÐÅÏ¢¸ü¼Ó׼ȷ¡£

Bundle-Name: SERC Helloworld
Bundle-Vendor: GR, SERC
Bundle-DocURL: http://elevenframework.org
Bundle-Category: example
Bundle-Copyright: SERC

3.2.3 ´úÂë¿É¼ûÐÔ

ÔÚJavaSEÖеÄjar°üÈç¹û·ÅÔÚÁËclasspathÀïÃæ£¬ÄÇôËü¶ÔÕâ¸öclasspathϵÄËùÓгÌÐò¶¼ÊǿɼûµÄ£¬²¢ÇÒÕâÖֿɼûÐÔ²»Äܸı䣬¶øOSGi±ê×¼¶¨ÒåÁËÈçϵÄÊôÐÔÓÃÓÚÃèÊö´úÂëµÄ¿É¼ûÐÔ£º

Bundle-ClassPath¡ªËü¶¨ÒåÁËÐγÉÕâ¸öbundleµÄËùÓдúÂëËùÔÚµÄλÖ㬺ÍJavaµÄclassathµÄ¸ÅÄîÏà½ü£¬²»Í¬µãÔÚÓÚ£¬JavaÖеÄclasspathÊǶ¨ÒåµÄjar°üµÄλÖ㬶øÕâ¸öÊôÐÔÃèÊöµÄÊÇbundleÄÚ²¿µÄÀàÔÚbundleÖеÄ·¾¶¡£ÓÐÀý×ÓÈçÏ£º

Bundle-ClassPath:.,other-classes/,embedded.jar

Export-Package¡ªÏÔʽ±©Â¶ÐèÒªºÍÆäËûbundle¹²ÏíµÄ´úÂ룬ÿ¸ö°üÖ®¼äÓöººÅ·Ö¸ô£¬Ã¿¸ö°ü¿ÉÓÃÐÞÊδÊÀ´ÐÞÊΰüµÄÆäËûÌØÕ÷¡£

Export-Package: org.serc.hellworld; vendor=¡±SERC¡±,
org.serc.hellworld.impl; vendor=¡±Gou Rui¡±

Import-Package¡ª¶¨Òå¸ÃbundleËùÒÀÀµµÄÍⲿ´úÂ룬Æä¸ñʽºÍExport-PackageÏàͬ£¬²¢ÇÒÒ²¿ÉÒÔʹÓÃÐÞÊδÊÀ´ÐÞÊΰü¡£²»¹ýÕâÀïµÄÐÞÊδÊÊÇÓÃÀ´ÏÞÖÆËùÒÀÀµ°üµÄ·¶Î§µÄ£¬ÏñÊÇÒ»¸ö¹ýÂËÆ÷£¬¶ø²»ÏñExport-PackageÖÐÓÃÀ´ÉùÃ÷°üµÄÌØÕ÷¡£ÀýÈçÈçÏÂÓï¾ä£º

Import-Package: org.serc.helloworld; vendor=¡±SERC¡±

4 ×ܽá

ͨ¹ýÕâÒ»Õ£¬Ï£Íû¶ÁÕßÃÇÄܹ»¶ÔOSGiÄ£¿é²ãÓÐÒ»¸ö³õ²½µÄÁ˽⣬Ã÷°×ÕâÒ»²ã×ÅÖØ½â¾öµÄÊÇһЩʲôÎÊÌ⣬²¢ÇÒÔÚÕâÖ®ºóÅäºÏ×Å¡¶OSGi¿ª·¢»·¾³µÄ½¨Á¢ºÍHelloWorld¡·ÕâÒ»Õ¿ÉÒÔ³¢ÊÔ×Å×Ô¼º´´½¨Ò»¸öbundle£¬Í¨¹ýÔÚMANIFESTÎļþÖÐÌîдԪÊý¾ÝÀ´±©Â¶Ò»Ð©°ü£¬ÒýÈëһЩ°ü¡£ÔÚÏÂһƪÈëÃÅÆªÖУ¬ÎÒÃǽ«½²½âOSGiµÄÉúÃüÖÜÆÚ²ã¡£

   
3090 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö


Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ


Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ