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