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