\n \u003C/property>\n \u003Cproperty name=\"useCodeAsDefaultMessage\" value=\"true\" />\n\u003C/bean>\n",[49,2295,2296,2301,2306,2311,2316,2321],{"__ignoreMap":47},[52,2297,2298],{"class":54,"line":55},[52,2299,2300],{},"\u003Cbean id=\"messageSource\">\n",[52,2302,2303],{"class":54,"line":61},[52,2304,2305],{}," \u003Cproperty name=\"sources\">\n",[52,2307,2308],{"class":54,"line":67},[52,2309,2310],{}," \u003Cplugin:list class=\"org.synyx.minos.message.ModuleMessageSource\"/>\n",[52,2312,2313],{"class":54,"line":73},[52,2314,2315],{}," \u003C/property>\n",[52,2317,2318],{"class":54,"line":79},[52,2319,2320],{}," \u003Cproperty name=\"useCodeAsDefaultMessage\" value=\"true\" />\n",[52,2322,2323],{"class":54,"line":85},[52,2324,2325],{},"\u003C/bean>\n",[18,2327,2328,2329,2332,2333,2336,2337,2339,2340,2342],{},"So this registers our",[49,2330,2331],{},"DispatchingMessageSource"," that gets injected into all beans within the context, implementing\n",[49,2334,2335],{},"ModuleMessageSource"," by Hera. This pretty much does the trick. The reason that we use",[49,2338,2335],{}," instead of\nSprings built-in",[49,2341,2254],{},"-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,2344,2345,2346,2348],{},"With some simple dispatching logic within",[49,2347,2331],{}," we found a powerful way to conquer the insufficiency\nof Spring, in conjunction with our modular system.",[42,2350,2352],{"className":991,"code":2351,"language":993,"meta":47,"style":47},"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",[49,2353,2354,2359,2364,2369,2374,2379,2384],{"__ignoreMap":47},[52,2355,2356],{"class":54,"line":55},[52,2357,2358],{},"List candidates = sources.getPluginsFor(getPrefixFromCode(code));\n",[52,2360,2361],{"class":54,"line":61},[52,2362,2363],{},"for (MessageSourcePlugin source : candidates) {\n",[52,2365,2366],{"class":54,"line":67},[52,2367,2368],{}," MessageFormat format = resolveMessageWithSource(source, code, locale);\n",[52,2370,2371],{"class":54,"line":73},[52,2372,2373],{}," if (null != format) {\n",[52,2375,2376],{"class":54,"line":79},[52,2377,2378],{}," return format;\n",[52,2380,2381],{"class":54,"line":85},[52,2382,2383],{}," }\n",[52,2385,2386],{"class":54,"line":91},[52,2387,1903],{},[18,2389,2390,2391,2394,2395,2398],{},"By the way, we use this mechanism a lot when it comes to easily extending functionality of the framework-core including\n",[49,2392,2393],{},"HandlerInterceptor",",",[49,2396,2397],{},"PropertyEditorRegistrar"," and our Modules itself.",[317,2400,319],{},{"title":47,"searchDepth":61,"depth":61,"links":2402},[],[323],"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":2197,"description":2409},"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":2407},"blog/modular-web-applications-based-on-spring",[2413,2414,2415,2416,339,2417],"architecture","framework","internationalization","modular","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",[2421,2423,2426,2429,2432,2435,2438,2441,2444,2447,2450,2453,2456,2459,2462,2465,2468,2471,2474,2477,2480,2483,2485,2488,2491,2494,2497,2499,2502,2505,2508,2511,2514,2517,2520,2523,2526,2529,2532,2535,2538,2541,2544,2547,2550,2553,2556,2559,2562,2565,2568,2571,2574,2577,2580,2582,2585,2588,2591,2594,2597,2600,2603,2605,2608,2611,2614,2617,2620,2623,2626,2629,2632,2635,2638,2641,2644,2647,2649,2652,2655,2658,2661,2664,2667,2670,2673,2676,2679,2682,2685,2688,2691,2694,2697,2700,2703,2706,2709,2711,2714,2717,2720,2723,2725,2728,2731,2734,2737,2740,2743,2746,2749,2752,2755,2758,2761,2764,2767,2770,2773,2776,2779,2782,2785,2788,2791,2794,2797,2800,2802,2805,2808,2811,2814,2817,2820,2823,2826,2829,2832,2835],{"slug":9,"name":2422},"Jennifer Abel",{"slug":2424,"name":2425},"allmendinger","Otto Allmendinger",{"slug":2427,"name":2428},"antony","Ben Antony",{"slug":2430,"name":2431},"arrasz","Joachim Arrasz",{"slug":2433,"name":2434},"bauer","David Bauer",{"slug":2436,"name":2437},"bechtold","Janine Bechtold",{"slug":2439,"name":2440},"boersig","Jasmin Börsig",{"slug":2442,"name":2443},"buch","Fabian Buch",{"slug":2445,"name":2446},"buchloh","Aljona Buchloh",{"slug":2448,"name":2449},"burgard","Julia Burgard",{"slug":2451,"name":2452},"caspar-schwedes","Caspar Schwedes",{"slug":2454,"name":2455},"christina-schmitt","Christina Schmitt",{"slug":2457,"name":2458},"clausen","Michael Clausen",{"slug":2460,"name":2461},"contargo_poetzsch","Thomas Pötzsch",{"slug":2463,"name":2464},"damrath","Sebastian Damrath",{"slug":2466,"name":2467},"daniel","Markus Daniel",{"slug":2469,"name":2470},"dasch","Julia Dasch",{"slug":2472,"name":2473},"denman","Joffrey Denman",{"slug":2475,"name":2476},"dfuchs","Daniel Fuchs",{"slug":2478,"name":2479},"dobler","Max Dobler",{"slug":2481,"name":2482},"dobriakov","Vladimir Dobriakov",{"slug":2484,"name":2484},"dreiqbik",{"slug":2486,"name":2487},"dschaefer","Denise Schäfer",{"slug":2489,"name":2490},"dschneider","Dominik Schneider",{"slug":2492,"name":2493},"duerlich","Isabell Duerlich",{"slug":2495,"name":2496},"dutkowski","Bernd Dutkowski",{"slug":2498,"name":2498},"eifler",{"slug":2500,"name":2501},"essig","Tim Essig",{"slug":2503,"name":2504},"ferstl","Maximilian Ferstl",{"slug":2506,"name":2507},"fey","Prisca Fey",{"slug":2509,"name":2510},"frank","Leonard Frank",{"slug":2512,"name":2513},"franke","Arnold Franke",{"slug":2515,"name":2516},"frischer","Nicolette Rudmann",{"slug":2518,"name":2519},"fuchs","Petra Fuchs",{"slug":2521,"name":2522},"gari","Sarah Gari",{"slug":2524,"name":2525},"gast","Gast",{"slug":2527,"name":2528},"graf","Johannes Graf",{"slug":2530,"name":2531},"grammlich","Daniela Grammlich",{"slug":2533,"name":2534},"guthardt","Sabrina Guthardt",{"slug":2536,"name":2537},"haeussler","Johannes Häussler",{"slug":2539,"name":2540},"hammann","Daniel Hammann",{"slug":2542,"name":2543},"heetel","Julian Heetel",{"slug":2545,"name":2546},"heft","Florian Heft",{"slug":2548,"name":2549},"heib","Sebastian Heib",{"slug":2551,"name":2552},"heisler","Ida Heisler",{"slug":2554,"name":2555},"helm","Patrick Helm",{"slug":2557,"name":2558},"herbold","Michael Herbold",{"slug":2560,"name":2561},"hofmann","Peter Hofmann",{"slug":2563,"name":2564},"hopf","Florian Hopf",{"slug":2566,"name":2567},"jaud","Alina Jaud",{"slug":2569,"name":2570},"jayasinghe","Robin De Silva Jayasinghe",{"slug":2572,"name":2573},"jbuch","Jonathan Buch",{"slug":2575,"name":2576},"junghanss","Gitta Junghanß",{"slug":2578,"name":2579},"kadyietska","Khrystyna Kadyietska",{"slug":2199,"name":2581},"Marc Kannegiesser",{"slug":2583,"name":2584},"karoly","Robert Károly",{"slug":2586,"name":2587},"karrasz","Katja Arrasz-Schepanski",{"slug":2589,"name":2590},"kaufmann","Florian Kaufmann",{"slug":2592,"name":2593},"kesler","Mike Kesler",{"slug":2595,"name":2596},"kirchgaessner","Bettina Kirchgäßner",{"slug":2598,"name":2599},"klem","Yannic Klem",{"slug":2601,"name":2602},"klenk","Timo Klenk",{"slug":346,"name":2604},"Tobias Knell",{"slug":2606,"name":2607},"knoll","Anna-Lena Knoll",{"slug":2609,"name":2610},"knorre","Matthias Knorre",{"slug":2612,"name":2613},"koenig","Melanie König",{"slug":2615,"name":2616},"kraft","Thomas Kraft",{"slug":2618,"name":2619},"krupicka","Florian Krupicka",{"slug":2621,"name":2622},"kuehn","Christian Kühn",{"slug":2624,"name":2625},"lange","Christian Lange",{"slug":2627,"name":2628},"larrasz","Luca Arrasz",{"slug":2630,"name":2631},"leist","Sascha Leist",{"slug":2633,"name":2634},"lihs","Michael Lihs",{"slug":2636,"name":2637},"linsin","David Linsin",{"slug":2639,"name":2640},"maniyar","Christian Maniyar",{"slug":2642,"name":2643},"martin","Björnie",{"slug":2645,"name":2646},"martin-koch","Martin Koch",{"slug":1804,"name":2648},"Tobias Matt",{"slug":2650,"name":2651},"mennerich","Christian Mennerich",{"slug":2653,"name":2654},"menz","Alexander Menz",{"slug":2656,"name":2657},"meseck","Frederick Meseck",{"slug":2659,"name":2660},"messner","Oliver Messner",{"slug":2662,"name":2663},"michael-ploed","Michael Plöd",{"slug":2665,"name":2666},"mies","Marius Mies",{"slug":2668,"name":2669},"mihai","Alina Mihai",{"slug":2671,"name":2672},"moeller","Jörg Möller",{"slug":2674,"name":2675},"mohr","Rebecca Mohr",{"slug":2677,"name":2678},"moretti","David Moretti",{"slug":2680,"name":2681},"mueller","Sven Müller",{"slug":2683,"name":2684},"muessig","Alexander Müssig",{"slug":2686,"name":2687},"neupokoev","Grigory Neupokoev",{"slug":2689,"name":2690},"nussbaecher","Carmen Nussbächer",{"slug":2692,"name":2693},"ochs","Pascal Ochs",{"slug":2695,"name":2696},"oelhoff","Jan Oelhoff",{"slug":2698,"name":2699},"oengel","Yasin Öngel",{"slug":2701,"name":2702},"oezsoy","Enis Özsoy",{"slug":2704,"name":2705},"posch","Maya Posch",{"slug":2707,"name":2708},"ralfmueller","Ralf Müller",{"slug":2710,"name":2710},"redakteur",{"slug":2712,"name":2713},"reich","Michael Reich",{"slug":2715,"name":2716},"reinhard","Karl-Ludwig Reinhard",{"slug":2718,"name":2719},"rmueller","Rebecca Müller",{"slug":2721,"name":2722},"rosum","Jan Rosum",{"slug":2724,"name":2724},"rueckert",{"slug":2726,"name":2727},"ruessel","Sascha Rüssel",{"slug":2729,"name":2730},"sauter","Moritz Sauter",{"slug":2732,"name":2733},"schaefer","Julian Schäfer",{"slug":2735,"name":2736},"scherer","Petra Scherer",{"slug":2738,"name":2739},"schlicht","Anne Schlicht",{"slug":2741,"name":2742},"schmidt","Jürgen Schmidt",{"slug":2744,"name":2745},"schneider","Tobias Schneider",{"slug":2747,"name":2748},"seber","Benjamin Seber",{"slug":2750,"name":2751},"sommer","Marc Sommer",{"slug":2753,"name":2754},"speaker-fels","Jakob Fels",{"slug":2756,"name":2757},"speaker-gierke","Oliver Gierke",{"slug":2759,"name":2760},"speaker-krupa","Malte Krupa",{"slug":2762,"name":2763},"speaker-mader","Jochen Mader",{"slug":2765,"name":2766},"speaker-meusel","Tim Meusel",{"slug":2768,"name":2769},"speaker-milke","Oliver Milke",{"slug":2771,"name":2772},"speaker-paluch","Mark Paluch",{"slug":2774,"name":2775},"speaker-schad","Jörg Schad",{"slug":2777,"name":2778},"speaker-schalanda","Jochen Schalanda",{"slug":2780,"name":2781},"speaker-schauder","Jens Schauder",{"slug":2783,"name":2784},"speaker-unterstein","Johannes Unterstein",{"slug":2786,"name":2787},"speaker-wolff","Eberhard Wolff",{"slug":2789,"name":2790},"speaker-zoerner","Stefan Zörner",{"slug":2792,"name":2793},"stefan-belger","Stefan Belger",{"slug":2795,"name":2796},"steinegger","Roland Steinegger",{"slug":2798,"name":2799},"stern","sternchen synyx",{"slug":2801,"name":2801},"synyx",{"slug":2803,"name":2804},"szulc","Mateusz Szulc",{"slug":2806,"name":2807},"tamara","Tamara Tunczinger",{"slug":2809,"name":2810},"theuer","Tobias Theuer",{"slug":2812,"name":2813},"thieme","Sandra Thieme",{"slug":2815,"name":2816},"thies-clasen","Marudor",{"slug":2818,"name":2819},"toernstroem","Olle Törnström",{"slug":2821,"name":2822},"ullinger","Max Ullinger",{"slug":2824,"name":2825},"ulrich","Stephan Ulrich",{"slug":2827,"name":2828},"wagner","Stefan Wagner",{"slug":2830,"name":2831},"weigel","Andreas Weigel",{"slug":2833,"name":2834},"werner","Fabian Werner",{"slug":2836,"name":2837},"wolke","Sören Wolke",["Reactive",2839],{"$scookieConsent":2840,"$ssite-config":2842},{"functional":2841,"analytics":2841},false,{"_priority":2843,"env":2847,"name":2848,"url":2849},{"name":2844,"env":2845,"url":2846},-10,-15,0,"production","nuxt-app","https://synyx.de",["Set"],["ShallowReactive",2852],{"category-plugin":-1,"authors":-1},"/blog/tags/plugin"]