<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Část #2: Modulární systémy ve Spring Frameworku</title>
	<atom:link href="http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/</link>
	<description>Dává je jen zřídka, obvykle jim není moc rozumět a často vám ani k ničemu nejsou.</description>
	<pubDate>Fri, 21 Nov 2008 03:07:12 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Novoj</title>
		<link>http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-1083</link>
		<dc:creator>Novoj</dc:creator>
		<pubDate>Mon, 19 Nov 2007 14:34:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-1083</guid>
		<description>Jednoduše si spustíme &lt;a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Timer.html" target="_new" rel="nofollow"&gt;Timer&lt;/a&gt; a hlídáme si změnu datumu poslední modifikace souboru (v nějakých pravidelných intervalech).</description>
		<content:encoded><![CDATA[<p>Jednoduše si spustíme <a href="http://java.sun.com/j2se/1.3/docs/api/java/util/Timer.html" target="_new" rel="nofollow">Timer</a> a hlídáme si změnu datumu poslední modifikace souboru (v nějakých pravidelných intervalech).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pavel</title>
		<link>http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-1078</link>
		<dc:creator>Pavel</dc:creator>
		<pubDate>Sun, 18 Nov 2007 19:01:39 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-1078</guid>
		<description>Hlidani zmen konfiguracnich souboru je mozna trivialni, ale stejne by me zajimalo, jak to na projektu delate.  Diky. Pavel</description>
		<content:encoded><![CDATA[<p>Hlidani zmen konfiguracnich souboru je mozna trivialni, ale stejne by me zajimalo, jak to na projektu delate.  Diky. Pavel</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Novoj</title>
		<link>http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-740</link>
		<dc:creator>Novoj</dc:creator>
		<pubDate>Fri, 28 Sep 2007 15:44:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-740</guid>
		<description>To opravdu záleží na situaci - Spring sám o sobě provádí refresh v synchronizované metodě, kde hned na začátku nastaví flag active na false. Při jakémkoli požadavku na beanu ve chvíli, kdy není kontext aktivní vypadne IllegalStateException. Pokud to neošetříte, může to typicky na web vrstvě skončit 500kou (tzn. uživatel bude chvíli dostávat chybové odpovědi).

My tento případ ošetřujeme tak, že neprovádíme refresh toho stejného stromu, ale bokem si vytváříme strom nový. Teprve pokud inicializace nového stromu kontextů proběhne bez chyby, vyměníme původní strom za nový, a starý uzavřeme. Vůči uživateli je toto samozřejmě příjemnější přístup, jelikož mu nehrozí žádný výpadek, ale klade to větší nároky na programátory. Aplikace musí být programována tak, aby jí nevadilo, že existuje 2x ve stejný čas ve stejném JVM (narážím na problematiku singletonů a statických proměnných).</description>
		<content:encoded><![CDATA[<p>To opravdu záleží na situaci - Spring sám o sobě provádí refresh v synchronizované metodě, kde hned na začátku nastaví flag active na false. Při jakémkoli požadavku na beanu ve chvíli, kdy není kontext aktivní vypadne IllegalStateException. Pokud to neošetříte, může to typicky na web vrstvě skončit 500kou (tzn. uživatel bude chvíli dostávat chybové odpovědi).</p>
<p>My tento případ ošetřujeme tak, že neprovádíme refresh toho stejného stromu, ale bokem si vytváříme strom nový. Teprve pokud inicializace nového stromu kontextů proběhne bez chyby, vyměníme původní strom za nový, a starý uzavřeme. Vůči uživateli je toto samozřejmě příjemnější přístup, jelikož mu nehrozí žádný výpadek, ale klade to větší nároky na programátory. Aplikace musí být programována tak, aby jí nevadilo, že existuje 2x ve stejný čas ve stejném JVM (narážím na problematiku singletonů a statických proměnných).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Vlasta</title>
		<link>http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-735</link>
		<dc:creator>Vlasta</dc:creator>
		<pubDate>Fri, 28 Sep 2007 06:11:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.novoj.net/2007/09/20/cast-2-modularni-systemy-ve-spring-frameworku/#comment-735</guid>
		<description>Napadá mě otázka jak se bude chovat aplikace, která je zrovna uprostřed refresche (což může trvat i několik (možná desítek) sekund, a přijde na ní request...Obávám se, že to bude nepěkné NullPointerException.
Zdá se mi bezpečnější reloadovat celý kontext aplikace i za cenu její nepřístupnost.</description>
		<content:encoded><![CDATA[<p>Napadá mě otázka jak se bude chovat aplikace, která je zrovna uprostřed refresche (což může trvat i několik (možná desítek) sekund, a přijde na ní request&#8230;Obávám se, že to bude nepěkné NullPointerException.<br />
Zdá se mi bezpečnější reloadovat celý kontext aplikace i za cenu její nepřístupnost.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
