\n \u003C/property>\n \u003Cproperty name=\"useCodeAsDefaultMessage\" value=\"true\" />\n\u003C/bean>\n",[46,383,384,389,394,399,404,409],{"__ignoreMap":44},[49,385,386],{"class":51,"line":52},[49,387,388],{},"\u003Cbean id=\"messageSource\">\n",[49,390,391],{"class":51,"line":58},[49,392,393],{}," \u003Cproperty name=\"sources\">\n",[49,395,396],{"class":51,"line":64},[49,397,398],{}," \u003Cplugin:list class=\"org.synyx.minos.message.ModuleMessageSource\"/>\n",[49,400,401],{"class":51,"line":70},[49,402,403],{}," \u003C/property>\n",[49,405,406],{"class":51,"line":76},[49,407,408],{}," \u003Cproperty name=\"useCodeAsDefaultMessage\" value=\"true\" />\n",[49,410,411],{"class":51,"line":82},[49,412,413],{},"\u003C/bean>\n",[18,415,416,417,420,421,424,425,427,428,430],{},"So this registers our",[46,418,419],{},"DispatchingMessageSource"," that gets injected into all beans within the context, implementing\n",[46,422,423],{},"ModuleMessageSource"," by Hera. This pretty much does the trick. The reason that we use",[46,426,423],{}," instead of\nSprings built-in",[46,429,341],{},"-interface is on the one hand so that we can do some performance-tweaks and on the\nother hand so that we dont get any “unwanted” implementations, which get to the context somehow.",[18,432,433,434,436],{},"With some simple dispatching logic within",[46,435,419],{}," we found a powerful way to conquer the insufficiency\nof Spring, in conjunction with our modular system.",[39,438,440],{"className":41,"code":439,"language":43,"meta":44,"style":44},"List candidates = sources.getPluginsFor(getPrefixFromCode(code));\nfor (MessageSourcePlugin source : candidates) {\n MessageFormat format = resolveMessageWithSource(source, code, locale);\n if (null != format) {\n return format;\n }\n}\n",[46,441,442,447,452,457,462,467,472],{"__ignoreMap":44},[49,443,444],{"class":51,"line":52},[49,445,446],{},"List candidates = sources.getPluginsFor(getPrefixFromCode(code));\n",[49,448,449],{"class":51,"line":58},[49,450,451],{},"for (MessageSourcePlugin source : candidates) {\n",[49,453,454],{"class":51,"line":64},[49,455,456],{}," MessageFormat format = resolveMessageWithSource(source, code, locale);\n",[49,458,459],{"class":51,"line":70},[49,460,461],{}," if (null != format) {\n",[49,463,464],{"class":51,"line":76},[49,465,466],{}," return format;\n",[49,468,469],{"class":51,"line":82},[49,470,471],{}," }\n",[49,473,474],{"class":51,"line":88},[49,475,476],{},"}\n",[18,478,479,480,483,484,487],{},"By the way, we use this mechanism a lot when it comes to easily extending functionality of the framework-core including\n",[46,481,482],{},"HandlerInterceptor",",",[46,485,486],{},"PropertyEditorRegistrar"," and our Modules itself.",[255,489,257],{},{"title":44,"searchDepth":58,"depth":58,"links":491},[],[493],"developer-blog","2010-04-23T11:45:49","Many of the Web-Applications we develop for our customers are based upon our small Framework on top\\nof Spring / Spring MVC. This framework basically\\nbrings often used components ready-to-use (or ready to customize) and – of course – makes things even simpler than\\nSpring already does.",{},"/blog/modular-web-applications-based-on-spring",{"title":284,"description":499},"Many of the Web-Applications we develop for our customers are based upon our small Framework on top\nof Spring / Spring MVC. This framework basically\nbrings often used components ready-to-use (or ready to customize) and – of course – makes things even simpler than\nSpring already does.",{"loc":497},"blog/modular-web-applications-based-on-spring",[274,503,504,505,506,507],"framework","internationalization","modular","plugin","spring","Many of the Web-Applications we develop for our customers are based upon our small Framework on top of Spring / Spring MVC. This framework basically brings often used components ready-to-use…","5W0G-SGPAZoCYIgYoymGLTgczHKhlKMT_hbPe_Lgn7s",[511,514,517,520,522,525,528,531,534,537,540,543,546,549,552,555,558,561,564,567,570,573,575,578,581,584,587,589,592,595,598,601,604,607,610,613,616,619,622,625,628,631,634,637,640,643,646,649,652,655,658,661,664,667,670,672,675,678,681,684,687,690,693,696,699,702,705,708,711,714,717,720,723,726,729,732,735,738,741,744,747,750,753,756,759,762,765,768,771,774,777,780,783,786,789,792,795,798,801,803,806,809,812,815,817,820,823,826,829,832,835,838,841,844,847,850,853,856,859,862,865,868,871,874,877,880,883,886,889,892,893,896,899,902,905,908,911,914,917,920,923,926],{"slug":512,"name":513},"abel","Jennifer Abel",{"slug":515,"name":516},"allmendinger","Otto Allmendinger",{"slug":518,"name":519},"antony","Ben Antony",{"slug":9,"name":521},"Joachim Arrasz",{"slug":523,"name":524},"bauer","David Bauer",{"slug":526,"name":527},"bechtold","Janine Bechtold",{"slug":529,"name":530},"boersig","Jasmin Börsig",{"slug":532,"name":533},"buch","Fabian Buch",{"slug":535,"name":536},"buchloh","Aljona Buchloh",{"slug":538,"name":539},"burgard","Julia Burgard",{"slug":541,"name":542},"caspar-schwedes","Caspar Schwedes",{"slug":544,"name":545},"christina-schmitt","Christina Schmitt",{"slug":547,"name":548},"clausen","Michael Clausen",{"slug":550,"name":551},"contargo_poetzsch","Thomas Pötzsch",{"slug":553,"name":554},"damrath","Sebastian Damrath",{"slug":556,"name":557},"daniel","Markus Daniel",{"slug":559,"name":560},"dasch","Julia Dasch",{"slug":562,"name":563},"denman","Joffrey Denman",{"slug":565,"name":566},"dfuchs","Daniel Fuchs",{"slug":568,"name":569},"dobler","Max Dobler",{"slug":571,"name":572},"dobriakov","Vladimir Dobriakov",{"slug":574,"name":574},"dreiqbik",{"slug":576,"name":577},"dschaefer","Denise Schäfer",{"slug":579,"name":580},"dschneider","Dominik Schneider",{"slug":582,"name":583},"duerlich","Isabell Duerlich",{"slug":585,"name":586},"dutkowski","Bernd Dutkowski",{"slug":588,"name":588},"eifler",{"slug":590,"name":591},"essig","Tim Essig",{"slug":593,"name":594},"ferstl","Maximilian Ferstl",{"slug":596,"name":597},"fey","Prisca Fey",{"slug":599,"name":600},"frank","Leonard Frank",{"slug":602,"name":603},"franke","Arnold Franke",{"slug":605,"name":606},"frischer","Nicolette Rudmann",{"slug":608,"name":609},"fuchs","Petra Fuchs",{"slug":611,"name":612},"gari","Sarah Gari",{"slug":614,"name":615},"gast","Gast",{"slug":617,"name":618},"graf","Johannes Graf",{"slug":620,"name":621},"grammlich","Daniela Grammlich",{"slug":623,"name":624},"guthardt","Sabrina Guthardt",{"slug":626,"name":627},"haeussler","Johannes Häussler",{"slug":629,"name":630},"hammann","Daniel Hammann",{"slug":632,"name":633},"heetel","Julian Heetel",{"slug":635,"name":636},"heft","Florian Heft",{"slug":638,"name":639},"heib","Sebastian Heib",{"slug":641,"name":642},"heisler","Ida Heisler",{"slug":644,"name":645},"helm","Patrick Helm",{"slug":647,"name":648},"herbold","Michael Herbold",{"slug":650,"name":651},"hofmann","Peter Hofmann",{"slug":653,"name":654},"hopf","Florian Hopf",{"slug":656,"name":657},"jaud","Alina Jaud",{"slug":659,"name":660},"jayasinghe","Robin De Silva Jayasinghe",{"slug":662,"name":663},"jbuch","Jonathan Buch",{"slug":665,"name":666},"junghanss","Gitta Junghanß",{"slug":668,"name":669},"kadyietska","Khrystyna Kadyietska",{"slug":286,"name":671},"Marc Kannegiesser",{"slug":673,"name":674},"karoly","Robert Károly",{"slug":676,"name":677},"karrasz","Katja Arrasz-Schepanski",{"slug":679,"name":680},"kaufmann","Florian Kaufmann",{"slug":682,"name":683},"kesler","Mike Kesler",{"slug":685,"name":686},"kirchgaessner","Bettina Kirchgäßner",{"slug":688,"name":689},"klem","Yannic Klem",{"slug":691,"name":692},"klenk","Timo Klenk",{"slug":694,"name":695},"knell","Tobias Knell",{"slug":697,"name":698},"knoll","Anna-Lena Knoll",{"slug":700,"name":701},"knorre","Matthias Knorre",{"slug":703,"name":704},"koenig","Melanie König",{"slug":706,"name":707},"kraft","Thomas Kraft",{"slug":709,"name":710},"krupicka","Florian Krupicka",{"slug":712,"name":713},"kuehn","Christian Kühn",{"slug":715,"name":716},"lange","Christian Lange",{"slug":718,"name":719},"larrasz","Luca Arrasz",{"slug":721,"name":722},"leist","Sascha Leist",{"slug":724,"name":725},"lihs","Michael Lihs",{"slug":727,"name":728},"linsin","David Linsin",{"slug":730,"name":731},"maniyar","Christian Maniyar",{"slug":733,"name":734},"martin","Björnie",{"slug":736,"name":737},"martin-koch","Martin Koch",{"slug":739,"name":740},"matt","Tobias Matt",{"slug":742,"name":743},"mennerich","Christian Mennerich",{"slug":745,"name":746},"menz","Alexander Menz",{"slug":748,"name":749},"meseck","Frederick Meseck",{"slug":751,"name":752},"messner","Oliver Messner",{"slug":754,"name":755},"michael-ploed","Michael Plöd",{"slug":757,"name":758},"mies","Marius Mies",{"slug":760,"name":761},"mihai","Alina Mihai",{"slug":763,"name":764},"moeller","Jörg Möller",{"slug":766,"name":767},"mohr","Rebecca Mohr",{"slug":769,"name":770},"moretti","David Moretti",{"slug":772,"name":773},"mueller","Sven Müller",{"slug":775,"name":776},"muessig","Alexander Müssig",{"slug":778,"name":779},"neupokoev","Grigory Neupokoev",{"slug":781,"name":782},"nussbaecher","Carmen Nussbächer",{"slug":784,"name":785},"ochs","Pascal Ochs",{"slug":787,"name":788},"oelhoff","Jan Oelhoff",{"slug":790,"name":791},"oengel","Yasin Öngel",{"slug":793,"name":794},"oezsoy","Enis Özsoy",{"slug":796,"name":797},"posch","Maya Posch",{"slug":799,"name":800},"ralfmueller","Ralf Müller",{"slug":802,"name":802},"redakteur",{"slug":804,"name":805},"reich","Michael Reich",{"slug":807,"name":808},"reinhard","Karl-Ludwig Reinhard",{"slug":810,"name":811},"rmueller","Rebecca Müller",{"slug":813,"name":814},"rosum","Jan Rosum",{"slug":816,"name":816},"rueckert",{"slug":818,"name":819},"ruessel","Sascha Rüssel",{"slug":821,"name":822},"sauter","Moritz Sauter",{"slug":824,"name":825},"schaefer","Julian Schäfer",{"slug":827,"name":828},"scherer","Petra Scherer",{"slug":830,"name":831},"schlicht","Anne Schlicht",{"slug":833,"name":834},"schmidt","Jürgen Schmidt",{"slug":836,"name":837},"schneider","Tobias Schneider",{"slug":839,"name":840},"seber","Benjamin Seber",{"slug":842,"name":843},"sommer","Marc Sommer",{"slug":845,"name":846},"speaker-fels","Jakob Fels",{"slug":848,"name":849},"speaker-gierke","Oliver Gierke",{"slug":851,"name":852},"speaker-krupa","Malte Krupa",{"slug":854,"name":855},"speaker-mader","Jochen Mader",{"slug":857,"name":858},"speaker-meusel","Tim Meusel",{"slug":860,"name":861},"speaker-milke","Oliver Milke",{"slug":863,"name":864},"speaker-paluch","Mark Paluch",{"slug":866,"name":867},"speaker-schad","Jörg Schad",{"slug":869,"name":870},"speaker-schalanda","Jochen Schalanda",{"slug":872,"name":873},"speaker-schauder","Jens Schauder",{"slug":875,"name":876},"speaker-unterstein","Johannes Unterstein",{"slug":878,"name":879},"speaker-wolff","Eberhard Wolff",{"slug":881,"name":882},"speaker-zoerner","Stefan Zörner",{"slug":884,"name":885},"stefan-belger","Stefan Belger",{"slug":887,"name":888},"steinegger","Roland Steinegger",{"slug":890,"name":891},"stern","sternchen synyx",{"slug":279,"name":279},{"slug":894,"name":895},"szulc","Mateusz Szulc",{"slug":897,"name":898},"tamara","Tamara Tunczinger",{"slug":900,"name":901},"theuer","Tobias Theuer",{"slug":903,"name":904},"thieme","Sandra Thieme",{"slug":906,"name":907},"thies-clasen","Marudor",{"slug":909,"name":910},"toernstroem","Olle Törnström",{"slug":912,"name":913},"ullinger","Max Ullinger",{"slug":915,"name":916},"ulrich","Stephan Ulrich",{"slug":918,"name":919},"wagner","Stefan Wagner",{"slug":921,"name":922},"weigel","Andreas Weigel",{"slug":924,"name":925},"werner","Fabian Werner",{"slug":927,"name":928},"wolke","Sören Wolke",["Reactive",930],{"$scookieConsent":931,"$ssite-config":933},{"functional":932,"analytics":932},false,{"_priority":934,"env":938,"name":939,"url":940},{"name":935,"env":936,"url":937},-10,-15,0,"production","nuxt-app","https://synyx.de",["Set"],["ShallowReactive",943],{"category-architecture":-1,"authors":-1},"/blog/tags/architecture"]