{"id":375,"date":"2014-09-15T00:23:37","date_gmt":"2014-09-15T09:23:37","guid":{"rendered":"http:\/\/blog.box.kr\/?p=375"},"modified":"2014-09-15T00:23:37","modified_gmt":"2014-09-15T09:23:37","slug":"spring-mybatis-repository","status":"publish","type":"post","link":"https:\/\/blog.box.kr\/?p=375","title":{"rendered":"spring mybatis @Repository"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/blog.naver.com\/PostView.nhn?blogId=vikong&amp;logNo=60180414100\">http:\/\/blog.naver.com\/PostView.nhn?blogId=vikong&amp;logNo=60180414100<\/a><\/p>\n<p><strong>application-context.xml<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>1) @Respository \ub85c DAO scanning \ubc0f bean \uc124\uc815 \ubb38\uc7a5<\/p>\n<p>&lt;context:component-scan base-package=&#8221;trust.repository&#8221; use-default-filters=&#8221;false&#8221;&gt;<\/p>\n<p>&lt;context:include-filter type=&#8221;annotation&#8221; expression=&#8221;org.springframework.stereotype.Repository&#8221; \/&gt;<\/p>\n<p>&lt;\/context:component-scan&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>2) @Transactional \uc744 \uc704\ud55c \uc124\uc815 \ubb38\uc7a5<\/p>\n<p>&lt;!&#8211; enable the configuration of transactional behavior based on annotations &#8211;&gt;<\/p>\n<p>&lt;tx:annotation-driven transaction-manager=&#8221;txManager&#8221; proxy-target-class=&#8221;true&#8221;\/&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>&lt;!&#8211; a PlatformTransactionManager is still required &#8211;&gt;<\/p>\n<p>&lt;bean id=&#8221;txManager&#8221; class=&#8221;org.springframework.jdbc.datasource.DataSourceTransactionManager&#8221;&gt;<\/p>\n<p>&lt;!&#8211; (this dependency is defined somewhere else) &#8211;&gt;<\/p>\n<p>&lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>mybatis-context.xml<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>1) sqlSessionFactory \uc9c0\uc815<\/p>\n<p>&lt;bean id=&#8221;sqlSessionFactory&#8221; class=&#8221;org.mybatis.spring.SqlSessionFactoryBean&#8221;&gt;<\/p>\n<p>&lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221; \/&gt;<\/p>\n<p>&lt;property name=&#8221;configLocation&#8221; value=&#8221;\/WEB-INF\/config\/mybatis-config.xml&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>2) sqlSessoinTemplate \uc9c0\uc815<\/p>\n<p>&lt;bean id=&#8221;sqlSessionTemplate&#8221; class=&#8221;org.mybatis.spring.SqlSessionTemplate&#8221;&gt;<\/p>\n<p>&lt;constructor-arg ref=&#8221;sqlSessionFactory&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>TestRepositoryImpl.java<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>@Repository<\/p>\n<p>public class TestRepositoryImpl extends SqlSessionDaoSupport implements TestRepository<\/p>\n<p>{<\/p>\n<p>\/** Test Data \uc870\ud68c **\/<\/p>\n<p>public List&lt;TestModel&gt; getTestData() throws DataAccessException<\/p>\n<p>{<\/p>\n<p>return getSqlSession().selectList(&#8220;test.list&#8221;, 0);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>\uc704\uc758 3\uac00\uc9c0 \ub0b4\uc6a9\ub9cc \ubcf4\uba74\u00a0TestRepositoryImpl \uacfc mybatis \uc758 \uc5f0\uad00 \uad00\uacc4\uac00 \uba85\ud655\ud558\uc9c0 \uc54a\ub2e4.<\/p>\n<p>mybatis \ubb38\uc11c(<a href=\"http:\/\/www.mybatis.org\/spring\/sqlsession.html#SqlSessionDaoSupport)\">http:\/\/www.mybatis.org\/spring\/sqlsession.html#SqlSessionDaoSupport)<\/a>\u00a0\ub97c \ubcf4\uc544\ub3c4<\/p>\n<p>&nbsp;<\/p>\n<h3>SqlSessionDaoSupport<\/h3>\n<p>SqlSessionDaoSupport\u00a0is an abstract support class that provides you with a\u00a0SqlSession. Calling\u00a0getSqlSession()\u00a0you will get aSqlSessionTemplate\u00a0which can then be used to execute SQL methods, like the following:<\/p>\n<p>public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { public User getUser(String userId) { return (User) getSqlSession().selectOne(&#8220;org.mybatis.spring.sample.mapper.UserMapper.getUser&#8221;, userId); } }<\/p>\n<p>Usually\u00a0MapperFactoryBean\u00a0is preferred to this class, since it requires no extra code. But, this class is useful if you need to do other non-MyBatis work in your DAO and concrete classes are required.<\/p>\n<p>SqlSessionDaoSupport\u00a0requires either an\u00a0sqlSessionFactory\u00a0or an\u00a0sqlSessionTemplate\u00a0property to be set. These can be set explicitly or autowired by Spring. If both properties are set, the\u00a0sqlSessionFactory\u00a0is ignored.<\/p>\n<p>Assuming a class\u00a0UserDaoImpl\u00a0that subclasses\u00a0SqlSessionDaoSupport, it can be configured in Spring like the following:<\/p>\n<p>&lt;bean id=&#8221;userMapper&#8221; class=&#8221;org.mybatis.spring.sample.mapper.UserDaoImpl&#8221;&gt; &lt;property name=&#8221;sqlSessionFactory&#8221; ref=&#8221;sqlSessionFactory&#8221; \/&gt; &lt;\/bean&gt;<\/p>\n<p>\uc5d0\uc11c \ucc98\ub7fc xml \uc5d0 DAO \uc5d0 \ub300\ud55c \uc124\uc815\uc744 \ud558\ub3c4\ub85d \ub418\uc5b4 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>\uadf8\ub7f0\ub370\u00a0TestRepositoryImpl\u00a0 \uc5d0 \ub300\ud55c \ubcc4\ub3c4\uc758 bean \uc124\uc815 \uc5c6\uc774\ub3c4 \uc798 \ub3d9\uc791\ud55c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>\uc774\uc720\ub294\u00a0<strong>org.mybatis.spring.support.SqlSessionDaoSupport<\/strong>\u00a0\ub97c \uc0ac\uc6a9\ud558\uc600\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>SqlSessionDaoSupport\u00a0 \uc5d0\ub294 setter \uac00 \ub450\uac00\uc9c0 \uc874\uc7ac\ud55c\ub2e4.<\/p>\n<p>\ub450\uac00\uc9c0 setter \ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758 \ub418\uc5b4 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u00a0@org.springframework.beans.factory.annotation.Autowired(required=false)<\/strong><\/p>\n<p><strong>\u00a0public void setSqlSessionFactory(org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory);<\/strong><\/p>\n<p><strong>\u00a0@org.springframework.beans.factory.annotation.Autowired(required=false)<\/strong><\/p>\n<p><strong>\u00a0public void setSqlSessionTemplate(org.mybatis.spring.SqlSessionTemplate sqlSessionTemplate);<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>mybatis-context.xml \uc5d0 \uc815\uc758\ub41c bean\u00a0sqlSessionFactory,\u00a0sqlSessionTemplate<\/p>\n<p>\uc774 SqlSessionDaoSupport \uc5d0 injection \ub418\ub3c4\ub85d,<\/p>\n<p>method \uc5d0 @Autowired annotation \uc774 \uc0ac\uc6a9\ub418\uc5b4 \uc788\uae30 \ub54c\ubb38\uc5d0 DAO \uc5d0 \ub300\ud55c ref bean \uc124\uc815 \uc5c6\uc774\ub3c4 \uc798 \ub3d9\uc791 \ud558\ub294 \uac83 \uc774\ub2e4.<\/p>\n<p><strong>\uacb0\ub860,\u00a0<\/strong><strong>org.mybatis.spring.support.SqlSessionDaoSupport \ub97c \uc0ac\uc6a9\ud558\uc5ec DAO \ub97c \uad6c\uc131\ud558\uba74<\/strong><\/p>\n<p><strong>\ub2e4\uc74c\uacfc \uac19\uc774 sqlSessionFactory \uc640 sqlSessionTemplate \ub9cc \uc815\uc758\ud558\uba74 \ub41c\ub2e4.<\/strong><\/p>\n<p><strong>\ubcc4\ub3c4\uc758 DAO \uc640 sqlSession ref \uc124\uc815\uc740 \ud558\uc9c0 \uc54a\uc544\ub3c4 \ub41c\ub2e4.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&lt;bean id=&#8221;sqlSessionFactory&#8221; class=&#8221;org.mybatis.spring.SqlSessionFactoryBean&#8221;&gt;<\/p>\n<p>&lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221; \/&gt;<\/p>\n<p>&lt;property name=&#8221;configLocation&#8221; value=&#8221;\/WEB-INF\/config\/mybatis-config.xml&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>&lt;bean id=&#8221;sqlSessionTemplate&#8221; class=&#8221;org.mybatis.spring.SqlSessionTemplate&#8221;&gt;<\/p>\n<p>&lt;constructor-arg ref=&#8221;sqlSessionFactory&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>===========================================================================<\/p>\n<p>\ud38c\u00a0<a href=\"http:\/\/purred.tistory.com\/11\">http:\/\/purred.tistory.com\/11<\/a><\/p>\n<p><strong>iBatis RowHandler<\/strong><\/p>\n<p>&#8211;\u00a0\uac1c\ubc1c\ud300 \ub0a8\ud55c\ud76c \ub300\ub9ac<\/p>\n<ol>\n<li>iBatis RowHandler\ub780..<\/li>\n<li>\uc6a9\ub7c9 \ub610\ub294 \ub808\ucf54\ub4dc \uc218\uac00 \ub9ce\uc740 \ub808\ucf54\ub4dc\uc14b\uc744 \ucc98\ub9ac\ud560\uc218 \uc788\ub294 \ubc29\ubc95<\/li>\n<li>\ub808\ucf54\ub4dc\ub97c \ud55c\ubc88\uc5d0 \ub2e4 \uac00\uc838\uc624\uc9c0 \uc54a\uace0 \ub808\ucf54\ub4dc \ud558\ub098\ud558\ub098\uc529\uc744 \ud578\ub4e4\ub7ec\uc5d0\uc11c \ucc98\ub9ac\ud558\ub294 \ubc29\uc2dd<\/li>\n<li>iBatis \ud2b9\uc131\uc0c1 Recordset \uc744 \ubaa8\ub450 List\uc5d0 \uc800\uc7a5\ud574\uc57c \ub418\ub294 \ub2e8\uc810\uc744 \uadf9\ubcf5\ud560\uc218 \uc788\ub294 \ubc29\ubc95<\/li>\n<li>List\uc5d0 \uc804\ubd80 \uc800\uc7a5\ud558\uc9c0 \uc54a\uace0 \ubc14\ub85c\ubc14\ub85c \ucc98\ub9ac \ud558\uc5ec \uba54\ubaa8\ub9ac\ub97c \uc808\uc57d\ud560\uc218 \uc788\uace0 \uc2e4\ud589 \uc18d\ub3c4 \ub610\ud55c \uc808\uc57d \ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol start=\"2\">\n<li>\ud578\ub4e4\ub7ec \ub9cc\ub4e4\uae30<\/li>\n<li>\ud578\ub4e4\ub7ec \ud074\ub798\uc2a4\ub294 com.ibatis.sqlmap.client.event.RowHandler\ub97c \uad6c\ud604\ud574\uc57c \ud55c\ub2e4.<\/li>\n<li>RowHandler \uc778\ud130\ud398\uc774\uc2a4\uc758 void handleRow (Object valueObject)\ub97c \uad6c\ud604\ud55c\ub2e4.<\/li>\n<li>handleRow \uc5d0 \ub118\uc5b4\uc624\ub294 valueObject \ub294 ResultMap \uc5d0 \ud574\ub2f9\ud558\ub294 Class\uac00 \ub9ac\ud134\ud55c\ub2e4. \ud574\ub2f9 \ud074\ub798\uc2a4\ub85c \uce90\uc2a4\ud305\ud558\uc5ec \ub370\uc774\ud130\ub97c \ucc98\ub9ac\ud55c\ub2e4.<\/li>\n<li>\ud578\ub4e4\ub7ec \ud074\ub798\uc2a4\ub294 \uc0dd\uc131\uc744 \ud558\uc5ec iBatis\uc5d0 \ub118\uae30\ub294 \uad6c\uc870\uc774\uae30 \ub54c\ubb38\uc5d0 \ub2e4\ub978 \uc5ec\ub7ec \ubd80\uac00\uc801\uc778 \ucc98\ub9ac\uac00 \uac00\ub2a5\ud558\ub2e4.<\/li>\n<li>\ud578\ub4e4\ub7ec \ud638\ucd9c<\/li>\n<li>\ud578\ub4e4\ub7ec \ud074\ub798\uc2a4\ub97c \uc0dd\uc131\ud55c \ub2e4\uc74c sqlMapClient \ud568\uc218\uc911 queryWithRowHandler\ub97c \ud638\ucd9c\ud55c\ub2e4.<\/li>\n<li>queryWithRowHandler ([Select ID], [Parameter Data], [RowHandler Interface]);<\/li>\n<li>\ub85c\uc6b0 \ud578\ub4e4\ub7ec\ub294 \ub2f9\uc5f0\ud788 Select ID\uc5d0\ub9cc \ub9e4\uce6d\uc774 \ub41c\ub2e4.<\/li>\n<li>queryWithRowHandler (&#8220;res.getsResource&#8221;, sData, rowHandler);<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol start=\"4\">\n<li>\uc2a4\ud504\ub9c1\uc5d0\uc11c\uc758 \ud638\ucd9c<\/li>\n<li>\uc2a4\ud504\ub9c1\uc758 getSqlMapClientTemplete ()\uc5d0\ub294 \ud574\ub2f9 \ud568\uc218\uac00 \uc5c6\ub2e4.<\/li>\n<li>\uadf8\ub7ec\uae30\uc5d0 getSqlMapClient () \ub97c \ud638\ucd9c\ud558\uc5ec \uc9c1\uc811 sqlMapClient\uc5d0 \uc811\uadfc\ud558\uc5ec \ud638\ucd9c\ud55c\ub2e4<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>============================================================================<\/p>\n<p>\ud38c\u00a0<a href=\"http:\/\/javastore.tistory.com\/62\">http:\/\/javastore.tistory.com\/62<\/a><\/p>\n<h1><a href=\"http:\/\/javastore.tistory.com\/62\">iBatis &#8211; SqlMapClient class \ub9cc\ub4e4\uc5b4 \uc8fc\ub294 util<\/a><\/h1>\n<p>iBatis\ub97c \uc0ac\uc6a9\ud560\ub54c template\ub97c \uc4f0\uc9c0 \uc54a\uc744\ub54c\ub294 \ud56d\uc0c1 SqlMapConfig\ud30c\uc77c\uc744 \ud1b5\ud574 SqlMapClient\ub97c \uc0dd\uc131\ud574\uc57c \ud55c\ub2e4. \uadf8\uac83\uc744 \uc27d\uac8c \ud574\uc8fc\uae30 \uc704\ud55c Abstract class\uc774\ub2e4.<br \/>\npackage com.myhome.manager;<\/p>\n<p>import com.ibatis.common.resources.Resources; import com.ibatis.sqlmap.client.SqlMapClient; import com.ibatis.sqlmap.client.SqlMapClientBuilder;<\/p>\n<p>public abstract class SQLManager {<br \/>\nprivate SqlMapClient sc = null;<br \/>\npublic SQLManager(){ try{ sc = SqlMapClientBuilder.buildSqlMapClient( Resources.getResourceAsReader( &#8220;com\/myhome\/manager\/SqlMapConfig.xml&#8221;));\u00a0<strong>\/\/sql\uc124\uc815\uc774 \ub4e4\uc5b4\uac00 \uc788\ub294 SqlMapConfig\ud30c\uc77c \uc704\uce58 \uc9c0\uc815 <\/strong><strong>\/\/classes \ud3f4\ub354\uc5d0 \uc788\uc73c\uba74 SqlMapClient.xml\ub85c \ubc14\ub85c \uc9c0\uc815 \ud574\ub3c4 \ub428<\/strong> }catch(java.io.IOException ie){ ie.printStackTrace(); } }<br \/>\npublic SqlMapClient getSqlMap(){ return sc;\u00a0 } }<br \/>\n\uc0ac\uc6a9\ubc29\ubc95\uc740 extends\ub85c \ub2e4\uc74c \ud074\ub798\uc2a4 \ud30c\uc77c\uc744 \ud655\uc7a5 \ubc1b\uc740\ub2e4\uc74c\uc5d0 getSqlMap\uc744 \ud1b5\ud574 SqlMapCleint\ub97c \uc0dd\uc131\ud55c\ub2e4.<br \/>\n\uc608)<\/p>\n<p>public class UploadDAO extends\u00a0<strong>SQLManager<\/strong>{<\/p>\n<p>public void insert(UploadDTO dto) throws SQLException{<br \/>\n<strong>this.getSqlMap().<\/strong>insert(&#8220;uploadInsert&#8221;,dto);<br \/>\n}<\/p>\n<p>&nbsp;<\/p>\n<p>=============================================================================<\/p>\n<p><a href=\"http:\/\/wecuffe.com\/158\">http:\/\/wecuffe.com\/158<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Spring Bean \uc815\ubcf4\ub294 \uc2f1\uae00\ud1a4 \uac1d\uccb4\ub85c \uc0dd\uc131\ub418\uae30 \ub54c\ubb38\uc5d0<\/p>\n<p>\uba54\ubaa8\ub9ac\uc5d0 \uc874\uc7ac\ud55c\ub2e4\uace0 \ubcf4\uba74 \ub41c\ub2e4 ..<\/p>\n<p>&nbsp;<\/p>\n<table width=\"645\">\n<tbody>\n<tr>\n<td>ApplicationContext appContext = ContextLoaderListener.getCurrentWebApplicationContext();\n<p>(SqlMapClient) appContext.getBean(&#8220;sqlMapClient&#8221;);<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc704 \ubc29\uc2dd\uc73c\ub85c \ube48\uc774\ub984\u00a0sqlMapClient\u00a0\uacfc \ucf00\uc2a4\ud305 \ud074\ub808\uc2a4\u00a0SqlMapClient\u00a0\ud615\ud0dc\ub85c \ubcc0\ud658\ud558\uba74 \ub0b4\uac00 \ub4f1\ub85d\ud55c BEAN \uc815\ubcf4\ub97c \uac00\uc9c0\uace0 \uc62c\uc218 \uc788\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<p>=============================================================================<\/p>\n<p>\ud38c\u00a0<a href=\"http:\/\/blog.naver.com\/PostView.nhn?blogId=namoyo&amp;logNo=110150099499\">http:\/\/blog.naver.com\/PostView.nhn?blogId=namoyo&amp;logNo=110150099499<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>xml \uc5d0 dao \ube48\uc744 \uc124\uc815\ud558\uace0 sqlMapClient\ub97c \uc8fc\uc785\ud558\ub294 \ubc29\uc2dd \ub9d0\uace0 \uc790\ubc14 \ud074\ub798\uc2a4\uc5d0\uc11c \uc5b4\ub178\ud14c\uc774\uc158\uc73c\ub85c Dao\ud074\ub798\uc2a4\uc5d0<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\uc608 member-dao.xml<\/p>\n<p>&lt;bean id=&#8221;memberDao&#8221; class=&#8221;com.test.dao.MemberDaoImpl&#8221;&gt; \u00a0\u00a0&lt;property name=&#8221;sqlMapClient&#8221; ref=&#8221;sqlMapClient&#8221; \/&gt; \u00a0&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>\uc774 xml\uc744 \uc5c6\uc560\uace0 @Repository \uc774\uc6a9\ud558\uae30<\/p>\n<p>&nbsp;<\/p>\n<ol>\n<li>XML\ub85c \ube48\uc744 \uc124\uc815\ud558\uc9c0 \uc54a\uc73c\ub824\uba74 \uba54\uc778 \uc124\uc815 xml\uc5d0<\/li>\n<\/ol>\n<p>&lt;context:component-scan base-package=&#8221;com.test.*&#8221; \/&gt;<\/p>\n<p>\uac00 \ud544\uc694\ud558\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<ol start=\"2\">\n<li>MemberDaoImpl \ud074\ub798\uc2a4\uc5d0 \uc5b4\ub178\ud14c\uc774\uc158 \ucd94\uac00<\/li>\n<\/ol>\n<ul>\n<li>\ubc29\ubc951<\/li>\n<\/ul>\n<table>\n<tbody>\n<tr>\n<td>MemberDaoImpl.java\n<p>&nbsp;<\/p>\n<p>@Repository public class MemberDaoImpl extends SqlMapClientDaoSupport implements MemberDao { \u00a0 \u00a0@Resource(name=&#8221;sqlMapClient&#8221;) \u00a0public void setSuperSqlMapClient(SqlMapClient sqlMapClient){ \u00a0\u00a0super.setSqlMapClient(sqlMapClient); \u00a0} \u00a0 \u00a0@Override \u00a0public void insert(MemberVo vo) { \u00a0\u00a0getSqlMapClientTemplate().insert(&#8220;member.insert&#8221;, vo); \u00a0}<\/p>\n<p>@Override \u00a0public List&lt;MemberVo&gt; selectList() { \u00a0\u00a0Map&lt;String,Integer&gt; params = new HashMap&lt;String,Integer&gt;(); \u00a0\u00a0return getSqlMapClientTemplate().queryForList(&#8220;member.selectList&#8221;,params); \u00a0} }<\/p><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<ul>\n<li>\ud074\ub798\uc2a4 \uba85\uc5d0 @Repository\ub97c \uba85\uc138\ud558\uace0 setSuperSqlMapClient \uba54\uc18c\ub4dc\ub97c \ud1b5\ud574 sqlMapClient \ub97c \uc8fc\uc785\ud55c\ub2e4.<\/li>\n<li>\ubc29\ubc952.<\/li>\n<li>setSuperSqlMapClient \uba54\uc18c\ub4dc \ub300\uc2e0\uc5d0 \uc0dd\uc131\uc790\ub85c sqlMapClient\ub97c \uc8fc\uc785\ud55c\ub2e4.<\/li>\n<\/ul>\n<table>\n<tbody>\n<tr>\n<td width=\"388\">\u00a0@Autowired \u00a0public MemberDaoImpl(SqlMapClient sqlMapClient){ \u00a0\u00a0super(); \u00a0\u00a0setSqlMapClient(sqlMapClient); \u00a0}<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>[\ucd9c\ucc98]<\/strong>\u00a0<a href=\"http:\/\/blog.naver.com\/namoyo\/110150099499\">ibatis sqlMapClient \uc744 @Repository \uc5b4\ub178\ud14c\uc774\uc158\uc744 \uc774\uc6a9\ud558\uc5ec Dao\uc5d0 \uc8fc\uc785\ud558\uae30<\/a>|<strong>\uc791\uc131\uc790<\/strong>\u00a0<a href=\"http:\/\/blog.naver.com\/namoyo\">\uc544\uc720<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>===========================================================================================================================<\/p>\n<p>\ud38c\u00a0<a href=\"http:\/\/blog.naver.com\/PostView.nhn?blogId=ssallow&amp;logNo=60103459223\">http:\/\/blog.naver.com\/PostView.nhn?blogId=ssallow&amp;logNo=60103459223<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>iBatis\uc5d0\uc11c\u00a0\ub300\uc6a9\ub7c9\uc758 \ucffc\ub9ac \uc0ac\uc6a9\uc2dc \uc720\uc6a9\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \ubc29\ubc95\uc740 RowHandler\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95\uc774\ub2e4.. \uba3c\uc800 RowHandler \uc778\ud130\ud398\uc774\uc2a4\ub97c \uad6c\ud604\ud574 \uc8fc\uace0&#8230; (Object \ud30c\ub77c\ubbf8\ud130 \ud558\ub098\ub97c \uac16\ub294 handleRow \uba54\uc18c\ub4dc \ud558\ub098 \ubc16\uc5d0 \uc5c6\ub2e4&#8230;) \ucffc\ub9ac\ub97c \uc2e4\ud589\ud560 \ub54c\u00a0queryWithRowHandler(id, rowHandler)\ub85c \uc2e4\ud589\ud558\uba74 \ub41c\ub2e4&#8230; rowHandler\uc758 Object\ub294 SqlMap\uc5d0 \uc815\uc758\ub41c &lt;select&gt; id\uc758 \ub9ac\ud134 \ud0c0\uc785\uc73c\ub85c \uce90\uc2a4\ud2b8 \ud558\uc5ec \uc0ac\uc6a9\ud558\uba74 \ub418\uaca0\ub2e4..<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>iBATIS\ub3c4 \uc5ed\uc2dc \uce5c\uc808\ud558\uac8c XML\uc744 \ubc18\ud658\ud574\uc8fc\ub294 \ub2a5\ub825\uc774 \uc788\ub2e4. \uadf8\ub807\uc9c0\ub9cc \uc77c\ubc18\uc801\uc73c\ub85c iBATIS\uc5d0\uc11c XML \uc0ac\uc6a9\uc740 \uad8c\uc7a5\ud558\uc9c0 \uc54a\ub294\ub2e4\uace0 \ud55c\ub2e4. XML \uc744 \uc0ac\uc6a9\ud558\ub294 \uac74 \ucffc\ub9ac\ub97c \uac1d\uccb4\uc5d0 \ub9e4\ud551\ud558\ub294 \uc791\uc5c5\uc744 \ub2e8\uc21c\ud558\uac8c \ub9cc\ub4e4\uace0\uc790 \ud558\ub294 iBATIS \uc758 \ucca0\ud559\uc740 \uc5b4\uc6b8\ub9ac\uc9c0 \uc54a\uae30 \ub54c\ubb38\uc774\ub2e4.<\/li>\n<li>\uadf8\ub798\ub3c4 \ubc29\ubc95\uc740 \uc788\uc73c\ub2c8 \ud55c \ubc88 \uacf5\ubd80\ud574\ubcf4\uc790.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>iBATIS \ub294 \uc544\ub798\ucc98\ub7fc \ub9e4\ud551 \uad6c\ubb38\uc744 \ud1b5\ud558\uc5ec XML \ub85c \uacb0\uacfc\ub97c \uc0dd\uc131\ud560 \uc218 \uc788\ub2e4.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h6>\ub9e4\ud551\uad6c\ubb38\uc5d0\uc11c xml \ub85c \uacb0\uacfc \ucc98\ub9ac<\/h6>\n<ol>\n<li>&lt;select id=&#8221;getByIdValueXml&#8221;\u00a0resultClass=&#8221;xml&#8221;\u00a0xmlResultName=&#8221;account&#8221;&gt;FROM EMP&lt;\/select&gt;<\/li>\n<li>GROUP BY DEPTNO<\/li>\n<li>SELECT DEPTNO,COUNT(DEPTNO) AS DEPT_COUNT<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ul>\n<li>\uc704 \ucf54\ub4dc\uc758 \ubc18\ud658\ud55c \uacb0\uacfc\ub294 \uc544\ub798\uc640 \uac19\ub2e4.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h6>iBATIS \uac00 xml\uc744 \ubc18\ud658\ud574\uc8fc\ub294 \uac12<\/h6>\n<ol>\n<li>[ &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;no&#8221;?&gt; &lt;dept&gt; &lt;DEPTNO&gt;30&lt;\/DEPTNO&gt; &lt;DEPT_COUNT&gt;6&lt;\/DEPT_COUNT&gt; &lt;\/dept&gt;, &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;no&#8221;?&gt; &lt;dept&gt; &lt;DEPTNO&gt;20&lt;\/DEPTNO&gt; &lt;DEPT_COUNT&gt;5&lt;\/DEPT_COUNT&gt; &lt;\/dept&gt;, &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243; standalone=&#8221;no&#8221;?&gt; &lt;dept&gt; &lt;DEPTNO&gt;10&lt;\/DEPTNO&gt; &lt;DEPT_COUNT&gt;3&lt;\/DEPT_COUNT&gt; &lt;\/dept&gt; ]<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ul>\n<li>\ubb54\uac00 \uc774\uc0c1\ud558\uc9c0 \uc54a\ub098? \uc704 \ucc98\ub7fc\u00a0\ud558\ub098\uc758 \uacb0\uacfc\uac00 \uc5ec\ub7ec\uac1c \ud569\uccd0\uc9c4 \uaf34\ub85c \ubc18\ud658\ud558\uac8c \ub41c\ub2e4.. \uadf8\ub798\uc11c iBATIS\uc758 \ub9e4\ud551 \uad6c\ubb38\uc758 resultClass , xmlResultName\uc744 \uc18d\uc131\uc744 \uc774\uc6a9\ud558\uc5ec XML\uc744 \ub9cc\ub4dc\ub294 \uac83\uc740<\/li>\n<li>\uacb0\uacfc \uc9d1\ud569\uc774 \ub2e8\uc77c \uc77c \ub54c ( \uac8c\uc2dc\ubb3c\uc744 \uce74\uc6b4\ud305\ud55c\ub2e4\uac70\ub098..) \uc720\uc6a9\ud558\ub2e4.<\/li>\n<li>\uadf8\ub7ec\uba74 \uacb0\uacfc \uc9d1\ud569\uc774 \uc5ec\ub7ec\uac1c \uc77c\ub54c \uc774\uac83\uc744 \ud55c \ubb36\uc74c\uc73c\ub85c \uacb0\uacfc\ub97c \uc5bb\uc73c\ub824\uba74 \uc5b4\ub5bb\uac8c \ud574\uc57c\ud558\ub098? \uc774 \ub54c \uc0ac\uc6a9\ud574\ubcfc \uac83\uc774 \ubc14\ub85c\u00a0RowHandler \uc778\ud130\ud398\uc774\uc2a4\u00a0\uc774\ub2e4.<\/li>\n<li>RowHandler \uc778\ud130\ud398\uc774\uc2a4\ub294 \ub9e4\uc6b0 \uac04\ub2e8\ud558\uba70, \ub9e4\ud551 \uad6c\ubb38\uc758 \uacb0\uacfc \uc14b\uc744 \ucc98\ub9ac\ud558\ub294 \uacfc\uc815\uc5d0 \ud2b9\uc815 \ud589\uc704\ub97c \uc0bd\uc785\ud558\ub3c4\ub85d \ud574\uc900\ub2e4. \uadf8\ub9ac\uace0 \uc624\uc9c1 \ud55c \uac1c\uc758 \uba54\uc11c\ub4dc\ub9cc\uc744 \ud3ec\ud568\ud558\uace0 \uc788\ub2e4.<\/li>\n<\/ul>\n<h6>RowHandler \uc778\ud130\ud398\uc774\uc2a4 \uc6d0\ud615<\/h6>\n<ol>\n<li>public interface RowHandler {<\/li>\n<li>void handleRow(Object valueObject);<\/li>\n<li>}<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ul>\n<li>handleRow \uba54\uc11c\ub4dc\ub294 \ub9e4\ud551 \uad6c\ubb38 \uacb0\uacfc \uc14b\uc758 \uac01 \ud589\ub9c8\ub2e4 \ud55c \ubc88\uc529 \ud638\ucd9c\ub41c\ub2e4.\u00a0\uc774 \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 \ub300\uc6a9\ub7c9\uc758 \ub370\uc774\ud130\ub97c \uba54\ubaa8\ub9ac\uc5d0 \ud55c\uaebc\ubc88\uc5d0 \uc62c\ub9ac\uc9c0 \uc54a\uace0\ub3c4 \ub2e4\ub8f0 \uc218 \uc788\uac8c \ub41c\ub2e4. \uc624\uc9c1 1 \ud589\uc758 \ub370\uc774\ud130\ub9cc\uc774 \uba54\ubaa8\ub9ac\uc5d0 \uc801\uc7ac\ub418\uc5b4 \ucf54\ub4dc(handleRow)\ub97c \ud638\ucd9c\ud558\uace0 \ub09c \ub4a4 \ub370\uc774\ud130 \uac1d\uccb4\ub97c \uba54\ubaa8\ub9ac\uc5d0\uc11c \uc81c\uac70\ud558\uc5ec \ubaa8\ub4e0 \uacb0\uacfc\ub97c \ucc98\ub9ac\ud560 \ub54c\uae4c\uc9c0 \uc774 \uacfc\uc815\uc744 \ubc18\ubcf5\ud55c\ub2e4.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul>\n<li>\uadf8\ub7fc \uc774\u00a0RowHandler \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc774\uc6a9\ud558\uc5ec XML \ubb38\uc11c\ub97c \uc0dd\uc131\ud574\ubcf4\uc790. RowHandler \ub97c \uc0ac\uc6a9\ud574\ub3c4 \uc5ec\uc804\ud788 \uac1d\uccb4\ub4e4\uc744 \uc21c\ud68c\ud558\uc9c0\ub9cc \ub9ac\uc2a4\ud2b8\uc5d0\uc11c \ud55c \ubc88\uc5d0 \uc624\uc9c1 \ud55c \uac1c\uc758 \uc694\uc18c\ub9cc\uc744 \ucc98\ub9ac\ud558\uac8c \ub41c\ub2e4!<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h6>RowHandler \ub97c \uc774\uc6a9\ud574\uc11c XML \ubb38\uc11c\ub97c \ucc98\ub9ac<\/h6>\n<ol>\n<li>public class DeptXmlRowHandler implements RowHandler {<\/li>\n<li>private StringBuffer xmlDocument = new StringBuffer(&#8220;&lt;TOTAL&gt;&#8221;);<\/li>\n<li>private String returnValue = null;<\/li>\n<li>@override<\/li>\n<li>public void handleRow(Object valueObject) {<\/li>\n<li>DeptnoVO dvo = (DeptnoVO) valueObject; xmlDocument.append(&#8220;&lt;DEPT&gt;&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;&lt;DEPTNO&gt;&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;dvo.getDeptNo()&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;&lt;\/DEPTNO&gt;&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;&lt;DEPT_COUNT&gt;&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;dvo.getDeptCount()&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;&lt;\/DEPT_COUNT&gt;&#8221;);<\/li>\n<li>xmlDocument.append(&#8220;&lt;\/DEPT&gt;&#8221;);<\/li>\n<li>}<\/li>\n<li>public String getDeptListXML() {<\/li>\n<li>if( null == returnValue) {<\/li>\n<li>xmlDocument.append(&#8220;&lt;\/TOTAL&gt;&#8221;);<\/li>\n<li>returnValue = xmlDcoument.toString();<\/li>\n<li>}<\/li>\n<li>return returnValue;<\/li>\n<li>}<\/li>\n<li>}<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ul>\n<li>\uae30\ubcf8 \uc124\uacc4 \ubc29\ud5a5\uc740<\/li>\n<\/ul>\n<ol>\n<li>RowHandler \uc778\uc2a4\ud134\uc2a4\ub97c \uc0dd\uc131<\/li>\n<li>\uc2e4\ud589\ud560 \ub9e4\ud551 \uad6c\ubb38\uacfc \uc774 \ub9e4\ud551 \uad6c\ubb38\uc5d0 \ud544\uc694\ud55c \ud30c\ub77c\ubbf8\ud130, \uadf8\ub9ac\uace0 rowHandler \uc778\uc2a4\ud134\uc2a4\ub97c \ub118\uaca8\uc900\ub2e4.<\/li>\n<li>queryWithRowHandler \uba54\uc11c\ub4dc\ub97c \ud638\ucd9c<\/li>\n<\/ol>\n<p>\uc73c\ub85c \uc7a1\uc73c\uba74 \ub41c\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<h6>XML \ubb38\uc11c\ub85c \uc778\ucf54\ub529\ub41c \ucd5c\uc885 \uc815\ubcf4\ub97c \uc0dd\uc131.<\/h6>\n<ol>\n<li>DeptXMLRowHandler drh = new DeptXmlRowHandler();<\/li>\n<li>deptDao.queryWithRowHandler(&#8220;Dept.getAll&#8221;, null, drh);<\/li>\n<li>xmlData = drh.getDeptListXML();\u00a0\/\/ \ub8e8\ud2b8\ud0dc\uadf8(TOTAL) \uc911\uac04 \ubd80\ubd84\uc5d0 vo \uc5d0 \ub2f4\uaca8\uc9c4 \ubaa8\ub4e0 \ub370\uc774\ud130\ub97c \ub07c\uc5b4 \ub123\uc5b4\uc9c4 \ub4a4 \uc644\uc131\ub41c XML\uc744 \ubc18\ud658.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h6>\ucd5c\uc885\uc801\uc73c\ub85c \ubc18\ud658\ub41c XML \ubb38\uc11c \ud615\ud0dc<\/h6>\n<ol>\n<li>&lt;TOTAL&gt;<\/li>\n<li>&lt;DEPT&gt;<\/li>\n<li>&lt;DEPTNO&gt;30&lt;\/DEPTNO&gt;<\/li>\n<li>&lt;DEPT_COUNT&gt;6&lt;\/DEPT_COUNT&gt;<\/li>\n<li>\u00a0&lt;\/DEPT&gt;<\/li>\n<li>&lt;DEPT&gt;<\/li>\n<li>&lt;DEPTNO&gt;20&lt;\/DEPTNO&gt;<\/li>\n<li>&lt;DEPT_COUNT&gt;5&lt;\/DEPT_COUNT&gt;<\/li>\n<li>&lt;\/DEPT&gt;<\/li>\n<li>&lt;DEPT&gt;<\/li>\n<li>&lt;DEPTNO&gt;10&lt;\/DEPTNO&gt;<\/li>\n<li>&lt;DEPT_COUNT&gt;3&lt;\/DEPT_COUNT&gt;<\/li>\n<li>&lt;\/DEPT&gt;<\/li>\n<li>&lt;\/TOTAL&gt;<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ul>\n<li>XML\uc758 DOM \ud30c\uc11c\ub098 SAX \ucc98\ub7fc \ud655\uc7a5\uc131\uc740 \ub5a8\uc5b4\uc9c0\ub9cc \uadf8\ub798\ub3c4 iBATIS\uc5d0\ub3c4 xml\uc744 \ud30c\uc2f1\ud558\ub294 \ubc29\ubc95\uc774 \uc788\ub2e4\ub294 \uac83\uc5d0 \uc758\uc758\ub97c \ub450\uc790.^^<\/li>\n<\/ul>\n<p>=============================================================================================================<\/p>\n<p><a href=\"http:\/\/blog.naver.com\/inho1213?Redirect=Log&amp;logNo=80165344493\">http:\/\/blog.naver.com\/inho1213?Redirect=Log&amp;logNo=80165344493<\/a><\/p>\n<p>\ub2e4\ub978 \ucc38\uc870 \ubb38\uc11c :\u00a0<a href=\"http:\/\/chanwook.tistory.com\/607\">http:\/\/chanwook.tistory.com\/607<\/a><\/p>\n<p>DB \uc5f0\ub3d9\uc744 \ud558\ub824\uba74 DB\uc640 \ucee4\ub125\uc158\uc744 \ub9fa\uc5b4\uc57c \ud558\ub294\ub370 \uc774\uac8c \uaf64\ub098 \ube44\uc6a9\uc774 \ud070 \uc791\uc5c5\uc774\ub2e4..<\/p>\n<p>\uc774\uac78 \uc880 \uc904\uc5ec\ubcf4\uc790\uace0 \ub098\uc628\uac8c \ucee4\ub125\uc158 \ud480\uc774\ub780 \uac1c\ub150\uc778\ub370 \uc694\uac78 \uc774\uc6a9\ud558\uace0\uc790 DataSource\ub97c \uc124\uc815\ud574\uc918\uc57c \ud55c\ub2e4&#8230;<\/p>\n<p>Spring\uc5d0\uc11c\ub294 3\uac00\uc9c0\ub97c \uc81c\uacf5\ud558\ub294\ub370 \ucc28\uadfc \ucc28\uadfc \uc0b4\ud3b4\ubcf4\uc790..<\/p>\n<ol>\n<li>DBCP<\/li>\n<\/ol>\n<p>\ub9d0 \uadf8\ub300\ub85c apache commons\uc758 DBCP\ub97c \uc774\uc6a9\ud574\uc11c DataSource\ub97c \uc124\uc815\ud558\ub294 \ubc29\ubc95\uc774\ub2e4..<\/p>\n<p>MySQL\uc744 \uc0ac\uc6a9\ud55c\ub2e4\uba74 \ub300\ucda9 \uc544\ub798\uc640 \uac19\uc774 \uc124\uc815\ud574\uc8fc\uba74 \ubc14\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4..<\/p>\n<p><strong>*\u00a0org.springframework.jdbc.datasource.SimpleDriverDataSource \uc774\uac83\ub3c4 \uc788\ub2e4.<\/strong><\/p>\n<p>&lt;bean id=&#8221;dataSource&#8221; class=&#8221;org.apache.commons.dbcp.BasicDataSource&#8221; destroy-method=&#8221;close&#8221;&gt;<\/p>\n<p>&lt;property name=&#8221;driverClassName&#8221; value=&#8221;com.mysql.jdbc.Driver&#8221;\/&gt;<\/p>\n<p>&lt;property name=&#8221;url&#8221; value=&#8221;jdbc:mysql:\/\/localhost:3306\/test?useUnicode=true&amp;characterEncoding=utf8&#8243;\/&gt;<\/p>\n<p>&lt;property name=&#8221;username&#8221; value=&#8221;user&#8221;\/&gt;<\/p>\n<p>&lt;property name=&#8221;password&#8221; value=&#8221;password&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>BasicDataSource\ub294 \uc704 4\uac00\uc9c0 \ub9d0\uace0\ub3c4 \uc5ec\ub7ec\uac00\uc9c0 \uc635\uc158\uc774 \uc788\ub294\ub370 \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \uc544\ub798 URL\uc744 \ucc38\uace0\ud558\uc790.<\/p>\n<p><a href=\"http:\/\/commons.apache.org\/dbcp\/configuration.html\">http:\/\/commons.apache.org\/dbcp\/configuration.html<\/a><\/p>\n<p>&nbsp;<\/p>\n<ol start=\"2\">\n<li>JNDI<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>\uc694\uac74 JNDI\ub77c\uace0 \ud574\uc11c J2EE\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 \uac74\ub370 \ub300\ucda9 \ub9ac\uc18c\uc2a4\ub97c \ub4f1\ub85d\ud558\uace0 \ucc3e\uae30 \uc704\ud574 \uc0ac\uc6a9\ud558\ub294 \uac70\ub77c\uace0 \ubcfc \uc218 \uc788\ub2e4&#8230;<\/p>\n<p>JNDI\uc5d0 DataSource\ub97c \ub4f1\ub85d\ud558\ub294\uac74 \ucc3e\uc544\ubcf4\uba74 \ub9ce\uc73c\ub2c8 \uc54c\uc544\uc11c \ucc3e\uc544\ubcf4\uace0 \ub4f1\ub85d\ub41c \uac83\uc744 \uc0ac\uc6a9\ud558\ub824\uba74 \uc544\ub798\uc640 \uac19\uc774 \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4..<\/p>\n<p>&lt;beans xmlns=&#8221;<a href=\"http:\/\/www.springframework.org\/schema\/beans\">http:\/\/www.springframework.org\/schema\/beans<\/a>&#8221;<\/p>\n<p>xmlns:jee=&#8221;<a href=\"http:\/\/www.springframework.org\/schema\/jee\">http:\/\/www.springframework.org\/schema\/jee<\/a>&#8221;<\/p>\n<p>xmlns:xsi=&#8221;<a href=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\">http:\/\/www.w3.org\/2001\/XMLSchema-instance<\/a>&#8221;<\/p>\n<p>xsi:schemaLocation=&#8221;<a href=\"http:\/\/www.springframework.org\/schema\/beans\">http:\/\/www.springframework.org\/schema\/beans<\/a><\/p>\n<p><a href=\"http:\/\/www.springframework.org\/schema\/beans\/spring-beans-2.5.xsd\">http:\/\/www.springframework.org\/schema\/beans\/spring-beans-2.5.xsd<\/a><\/p>\n<p><a href=\"http:\/\/www.springframework.org\/schema\/jee\">http:\/\/www.springframework.org\/schema\/jee<\/a><\/p>\n<p><a href=\"http:\/\/www.springframework.org\/schema\/jee\/spring-jee-2.5.xsd\">http:\/\/www.springframework.org\/schema\/jee\/spring-jee-2.5.xsd<\/a>&#8220;&gt;<\/p>\n<p>&lt;jee:jndi-lookup id=&#8221;dataSource&#8221; jndi-name=&#8221;jdbc\/dataSource&#8221; resource-ref=&#8221;true&#8221;\/&gt;<\/p>\n<p>&#8230;<\/p>\n<p>&lt;\/beans&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>\uc704\uc640 \uac19\uc774 jee \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc640 \uc2a4\ud0a4\ub9c8\ub97c \ucd94\uac00\ud574\uc8fc\uace0 jee\ud0dc\uadf8\ub97c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4.<\/p>\n<p>jndi-name \uc18d\uc131\uc5d0 \ub4f1\ub85d\ud55c JNDI \uc774\ub984\uc744 \ub123\uc5b4\uc8fc\uba74 \ub41c\ub2e4..<\/p>\n<p>resource-ref \uc18d\uc131\uc774 true\ub85c \uc9c0\uc815\ub418\uba74 jndi-name\uc5d0 \uc9c0\uc815\ub41c \uac12\uc5d0 java:comp\/env \uac00 prefix\ub85c \ubd99\ub294\ub2e4&#8230;<\/p>\n<p>\uc800\ub807\uac8c \uc0ac\uc6a9\ud558\uae30 \uc2eb\ub2e4\uba74 \uc544\ub798\uc640 \uac19\uc774 bean\uc744 \ud558\ub098 \ub4f1\ub85d\ud574\uc11c \uc0ac\uc6a9\ud558\uba74 \ub41c\ub2e4&#8230;<\/p>\n<p>&lt;bean id=&#8221;dataSource&#8221; class=&#8221;org.springframework.jndi.JndiObjectFactoryBean&#8221;&gt;<\/p>\n<p>&lt;property name=&#8221;jndiName&#8221; value=&#8221;jdbc\/dataSource&#8221;\/&gt;<\/p>\n<p>&lt;property name=&#8221;resourceRef&#8221; value=&#8221;true&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<ol start=\"3\">\n<li>DriverManager<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p>\uadf8\ub0e5 \ub2e5\uce58\uace0 \uc544\ub798\uc640 \uac19\uc774 \ud558\uba74 \ub41c\ub2e4..<\/p>\n<p>&lt;bean id=&#8221;dataSource&#8221; class=&#8221;org.springframework.jdbc.datasource.DriverManagerDataSource&#8221;&gt;<\/p>\n<p>&lt;property name=&#8221;driverClassName&#8221; value=&#8221;com.mysql.jdbc.Driver&#8221;\/&gt;<\/p>\n<p>&lt;property name=&#8221;url&#8221; value=&#8221;jdbc:mysql:\/\/localhost:3306\/test?useUnicode=true&amp;characterEncoding=utf8&#8243;\/&gt;<\/p>\n<p>&lt;property name=&#8221;username&#8221; value=&#8221;user&#8221;\/&gt;<\/p>\n<p>&lt;property name=&#8221;password&#8221; value=&#8221;password&#8221;\/&gt;<\/p>\n<p>&lt;\/bean&gt;<\/p>\n<p>&nbsp;<\/p>\n<p>DataSource\ub97c \uc124\uc815\ud588\uc73c\ub2c8 \uc774\uc81c \uc9c1\uc811 \uac00\uc838\ub2e4 \uc4f0\uae30\ub9cc \ud558\uba74 \ub41c\ub2e4&#8230;<\/p>\n<p>Connection conn = dataSource.getConnection();<\/p>\n<p>conn.close();<\/p>\n<p>\ud558\uc9c0\ub9cc&#8230; Spring\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ud2b8\ub79c\uc7ad\uc158\uc744 \uc0ac\uc6a9\ud558\uace0 \uc2f6\ub2e4\uba74 \uc544\ub798\uc640 \uac19\uc774 \uc0ac\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\ub2e4..<\/p>\n<p>&nbsp;<\/p>\n<p>Connection conn = DataSourceUtils.getConnection(dataSource);<\/p>\n<p>DataSourceUtils.releaseConnection(conn, dataSource);<\/p>\n<p>=========================================================================================================================<\/p>\n<p><a href=\"http:\/\/elindreams.egloos.com\/820087\">http:\/\/elindreams.egloos.com\/820087<\/a><\/p>\n<p>Datasource\uc124\uc815<\/p>\n<p><strong>1. Apache\uadf8\ub8f9\uc758 Common\ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud574\uc11c \uc124\uc815\ud558\ub294 \ubc29\ubc95 <\/strong>[applicationContext.xml]<br \/>\n&lt;beans &#8230;&gt;<br \/>\n&lt;bean id=&#8221;dataSource&#8221;<br \/>\nclass=&#8221;<strong>org.apache.commons.dbcp.BasicDataSource<\/strong>\u201c<br \/>\ndestroy-method=&#8221;close&#8221;&gt;<br \/>\n&lt;property name=&#8221;<strong>driverClassName<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property name=&#8221;<strong>url<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;jdbc:oracle:thin:@localhost:1521:xe&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property name=&#8221;<strong>username<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;sa&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property name=&#8221;<strong>password<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;sa&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;\/bean&gt;<br \/>\n&lt;\/beans&gt;<\/p>\n<p>=&gt; \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ub418\ub294 Apache\uadf8\ub8f9\uc758 Common\ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud574\uc11c \uc124\uc815\ud55c \uac83\uc73c\ub85c Common\ub77c\uc774\ube0c\ub7ec\ub9ac\uc758<br \/>\nBasicDataSource\ud074\ub798\uc2a4\ub97c \ube48\uc73c\ub85c \ub4f1\ub85d\ud558\uace0 Connection \uc5f0\uacb0\uc5d0 \ud544\uc694\ud55c \uc815\ubcf4\ub97c Setter Injection \ud615\ud0dc\ub85c \uc124\uc815\ud568.<\/p>\n<p><strong>2. Spring Framework\uac00 \uc81c\uacf5\ud558\ub294 DataSoruce\uad6c\ud604 \ud074\ub798\uc2a4\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 <\/strong>[applicationContext.xml]<br \/>\n&lt;beans &#8230;&gt;<br \/>\n&lt;bean id=&#8221;dataSource&#8221;<br \/>\nclass=&#8221;<strong>org.springframework.jdbc.datasource.DriverManagerDataSource<\/strong>&#8220;&gt;<br \/>\n&lt;property name=&#8221;driverClassName&#8221;&gt;<br \/>\n&lt;value&gt;oracle.jdbc.driver.OracleDriver&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property name=&#8221;<strong>url<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;jdbc:oracle:thin:@localhost:1521:xe&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property name=&#8221;<strong>username<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;hr&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;property name=&#8221;<strong>password<\/strong>&#8220;&gt;<br \/>\n&lt;value&gt;hr&lt;\/value&gt;<br \/>\n&lt;\/property&gt;<br \/>\n&lt;\/bean&gt;<br \/>\n&lt;\/beans&gt;<\/p>\n<p><strong>3. WAS(\ud1b0\ucea3,\uc6f9\ub85c\uc9c1 \ub4f1\ub4f1)\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 DataSource\ub97c \uc774\uc6a9\ud558\ub294 \ubc29\ubc95 <\/strong>[applicationContext.xml]<br \/>\n&lt;beans &#8230;&gt;<br \/>\n&lt;bean id=&#8221;dataSource&#8221;<br \/>\nclass=&#8221;org.springframework.jndi.JndiObjectFactoryBean&#8221;&gt;<br \/>\n<strong>\u00a0\u00a0&lt;property name=&#8221;jndiName&#8221; value=&#8221;jdbc:comp\/env\/jdbc\/myOracle&#8221; \/&gt; <\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/bean&gt;<br \/>\n&lt;\/beans&gt;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; http:\/\/blog.naver.com\/PostView.nhn?blogId=vikong&amp;logNo=60180414100 application-context.xml &nbsp; 1) @Respository \ub85c DAO scanning \ubc0f bean \uc124\uc815 \ubb38\uc7a5 &lt;context:component-scan base-package=&#8221;trust.repository&#8221; use-default-filters=&#8221;false&#8221;&gt; &lt;context:include-filter type=&#8221;annotation&#8221; expression=&#8221;org.springframework.stereotype.Repository&#8221; \/&gt; &lt;\/context:component-scan&gt; &nbsp; 2) @Transactional \uc744 \uc704\ud55c \uc124\uc815 \ubb38\uc7a5 &lt;!&#8211; enable the configuration of transactional behavior based on annotations &#8211;&gt; &lt;tx:annotation-driven transaction-manager=&#8221;txManager&#8221; proxy-target-class=&#8221;true&#8221;\/&gt; &nbsp; &lt;!&#8211; a PlatformTransactionManager is still required &#8211;&gt; &lt;bean id=&#8221;txManager&#8221; class=&#8221;org.springframework.jdbc.datasource.DataSourceTransactionManager&#8221;&gt; &lt;!&#8211; (this dependency is defined somewhere else) &#8211;&gt; &lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221;\/&gt; &lt;\/bean&gt; &nbsp; mybatis-context.xml &nbsp; 1) sqlSessionFactory \uc9c0\uc815 &lt;bean id=&#8221;sqlSessionFactory&#8221; class=&#8221;org.mybatis.spring.SqlSessionFactoryBean&#8221;&gt; &lt;property name=&#8221;dataSource&#8221; ref=&#8221;dataSource&#8221; \/&gt; &lt;property name=&#8221;configLocation&#8221; value=&#8221;\/WEB-INF\/config\/mybatis-config.xml&#8221;\/&gt; &lt;\/bean&gt; &nbsp; 2) sqlSessoinTemplate \uc9c0\uc815 &lt;bean id=&#8221;sqlSessionTemplate&#8221; class=&#8221;org.mybatis.spring.SqlSessionTemplate&#8221;&gt; &lt;constructor-arg ref=&#8221;sqlSessionFactory&#8221;\/&gt; &lt;\/bean&gt; &nbsp; &nbsp; TestRepositoryImpl.java &nbsp; @Repository public class TestRepositoryImpl extends SqlSessionDaoSupport implements TestRepository { \/** Test Data \uc870\ud68c **\/ public List&lt;TestModel&gt; getTestData() throws DataAccessException { return getSqlSession().selectList(&#8220;test.list&#8221;, 0); } } &nbsp; \uc704\uc758 3\uac00\uc9c0 \ub0b4\uc6a9\ub9cc \ubcf4\uba74\u00a0TestRepositoryImpl \uacfc mybatis \uc758 \uc5f0\uad00 \uad00\uacc4\uac00 \uba85\ud655\ud558\uc9c0 \uc54a\ub2e4. mybatis \ubb38\uc11c(http:\/\/www.mybatis.org\/spring\/sqlsession.html#SqlSessionDaoSupport)\u00a0\ub97c \ubcf4\uc544\ub3c4 &nbsp; SqlSessionDaoSupport SqlSessionDaoSupport\u00a0is an abstract support class that provides you with a\u00a0SqlSession. Calling\u00a0getSqlSession()\u00a0you will get aSqlSessionTemplate\u00a0which can then be used to execute SQL methods, like the following: public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao { public User getUser(String userId) { return (User) getSqlSession().selectOne(&#8220;org.mybatis.spring.sample.mapper.UserMapper.getUser&#8221;, userId); } } Usually\u00a0MapperFactoryBean\u00a0is preferred to this class, since it requires no extra code. But, this class is useful if you [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"ngg_post_thumbnail":0,"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[7],"tags":[],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5q9Zn-63","jetpack-related-posts":[{"id":389,"url":"https:\/\/blog.box.kr\/?p=389","url_meta":{"origin":375,"position":0},"title":"[\ud38c]iBATIS 2.3.0 \ub610\ub294 2.3.2 \uc774\uc0c1 sqlmap \uc790\ub3d9 \ub9ac\ub85c\ub529","date":"2014-09-15","format":false,"excerpt":"iBATIS 2.3.0 \ub610\ub294 2.3.2 \uc774\uc0c1 sqlmap \uc790\ub3d9 \ub9ac\ub85c\ub529 \uac1c\uc694 iBATIS + Spring \uac1c\ubc1c\uc2dc \ucffc\ub9ac \ub9e4\ud551 \ud30c\uc77c\uc774 \ubcc0\uacbd\ub418\uba74 \uc6f9\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc11c\ubc84\ub97c \uc7ac\uae30\ub3d9\ud574\uc57c \uc801\uc6a9\uc774 \ub410\uc5c8\ub2e4. \uc774\ub7ec\ud55c \ubd88\ud3b8\uc744 \uc5c6\uc560\uae30 \uc704\ud574 \ub9e4\ud551 \ud30c\uc77c \ubcc0\uacbd\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \uac10\uc2dc, \uc801\uc6a9\ud558\ub294 \ubaa8\ub4c8\uc744 \uc81c\uacf5\ud55c\ub2e4. \uac10\uc2dc \ub300\uc0c1 \uc774 \ubaa8\ub4c8\uc740 iBATIS sqlmap \ud074\ub77c\uc774\uc5b8\ud2b8\uc758 sqlMap \ubc0f sqlMapConfig \ud30c\uc77c\uc758 \ubcc0\uacbd\uc744 \uac10\uc9c0, \uc2e4\uc2dc\uac04 \uc801\uc6a9\ud574\uc900\ub2e4. \uc81c\uc57d\uc0ac\ud56d\u2026","rel":"","context":"In &quot;\ucc38\uace0\ub97c \uc704\ud55c \uc800\uc7a5\ubb3c&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":720,"url":"https:\/\/blog.box.kr\/?p=720","url_meta":{"origin":375,"position":1},"title":"[\ud38c]Java \uc5d0\uc11c DataBase Replication Master\/Slave (write\/read) \ubd84\uae30 \ucc98\ub9ac\ud558\uae30","date":"2015-04-15","format":false,"excerpt":"http:\/\/kwon37xi.egloos.com\/ \ub300\uaddc\ubaa8 \uc11c\ube44\uc2a4 \uac1c\ubc1c\uc2dc\uc5d0 \uac00\uc7a5 \uae30\ubcf8\uc801\uc73c\ub85c \ud558\ub294 \ud29c\ub2dd\uc740 \ubc14\ub85c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c Write\uc640 Read DB\ub97c Replication(\ub9ac\ud50c\ub9ac\ucf00\uc774\uc158)\ud558\uace0 \uc4f0\uae30 \uc791\uc5c5\uc740 Master(Write)\ub85c \ubcf4\ub0b4\uace0 \uc77d\uae30 \uc791\uc5c5\uc740 Slave(Read)\ub85c \ubcf4\ub0b4\uc5b4 \ubd80\ud558\ub97c \ubd84\uc0b0 \uc2dc\ud0a4\ub294 \uac83\uc774\ub2e4. \ud2b9\ud788 \ub300\ubd80\ubd84\uc758 \uc11c\ube44\uc2a4\ub294 \uc77d\uae30\uac00 \uc555\ub3c4\uc801\uc73c\ub85c \ub9ce\uae30 \ub54c\ubb38\uc5d0\u00a0 Slave\ub294 \uc5ec\ub7ec \ub300\ub97c \ub450\uc5b4 \uc77d\uae30 \ubd80\ud558\ub97c \ubd84\uc0b0 \uc2dc\ud0a8\ub2e4. \uadf8\ub7f0\ub370 \ub610 \ud558\ub098 \uae30\uc5b5\ud574\uc57c \ud560 \uac83\uc774 Replication\uc740 \ube44\ub85d \uc9e7\ub354\ub77c\ub3c4\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":590,"url":"https:\/\/blog.box.kr\/?p=590","url_meta":{"origin":375,"position":2},"title":"[\ud38c]Java \uc5d0\uc11c DataBase Replication Master\/Slave (write\/read) \ubd84\uae30 \ucc98\ub9ac\ud558\uae30 \ud504\ub85c\uadf8\ub798\ubc0d","date":"2015-01-30","format":false,"excerpt":"Cloud\ud658\uacbd\uc5d0\uc11c DB\ub97c \uc0ac\uc6a9\ud558\ub2e4\ubcf4\ub2c8 Disk I\/O\ub098 \ub108\ubb34 \ub290\ub824\uc11c \ub9ce\uc740 \uace0\ubbfc\uc744 \ud558\uac8c \ub410\ub2e4. \uc77c\ub2e8 \uc0dd\uac01\ub098\ub294\uac83\uc774 \ub9ce\uc774 \ub4e4 \ud558\ub294 Replication\uc744 \uc774\uc6a9\ud55c \ubd80\ud558\ubd84\uc0b0 ( Master\ub294 Insert\/Update\ub9cc, Slave\ub294 SELECT\ub9cc ) \uadf8\ub7f0\ub370 \ub9c9\uc0c1 \ud560\ub824\uba74 \uc774\uac83 \uc800\uac83 \uc190\uc774 \ub9ce\uc774 \uac04\ub2e4.. \uadf8\ub798\uc11c.. \uc0dd\uac01\ub9cc \ud558\uace0 \uc801\uc6a9\uc744 \uc548\ud588\uc5c8\ub294\ub370.. \u00a0 \uc6f9\uc11c\ud551\uc744 \ud558\ub2e4\uac00 \uc774\ub7f0 \uae00\uc744 \ubc1c\uacac.. \uc544!! \uc774\ub807\uac8c \uc88b\uc744 \uc218\uac00.. \u00a0 \uc5ed\uc2dc\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":707,"url":"https:\/\/blog.box.kr\/?p=707","url_meta":{"origin":375,"position":3},"title":"[Tips- Spring, hibernate] \ucee4\ub125\uc158 \ud480 \uc720\uc9c0\ud558\uae30","date":"2015-04-15","format":false,"excerpt":"http:\/\/www.mimul.com\/pebble\/default\/2008\/06\/24\/1214258760000.html \u00a0 \uae30\ubcf8\uc801\uc73c\ub85c mysql\uc740 8\uc2dc\uac04 \uc774\ud6c4\uc5d0 \ub3d9\uc791\ud558\uc9c0 \uc54a\ub294 \ucee4\ub125\uc158\uc740 \uc885\ub8cc\uc2dc\ud0b5\ub2c8\ub2e4. \uadf8\ub798\uc11c \ucee4\ub125\uc158 \ud480\uc774 \ube44\uc815\uc0c1 \uc0c1\ud0dc\uac00 \ub420 \ud655\ub960\uc774 \uc788\uc5b4 \uc544\ub798\uc640 \uac19\uc740 \uc124\uc815\uc774 \ud544\uc694\ud558\uac8c \ub429\ub2c8\ub2e4. \uae30\ubcf8\uc801\uc73c\ub85c \ub370\uc774\ud130 \uc18c\uc2a4\ub294 dbcp, c3p0 \ub450\uac1c \uc911\uc5d0 \ud558\ub098\ub97c \uc0ac\uc6a9\ud558\uc2dc\uba74 \ub418\uace0, hibernateProperties\uc5d0 c3p0 \uc18d\uc131\uc744 \ucd94\uac00\ud574\uc8fc\uba74 \ub429\ub2c8\ub2e4. \ud55c\ubc88 \uc801\uc6a9\ud574\ubcf4\uc138\uc694. \uac00\ub054 TOMCAT\uacfc MySQL \uac04\uc758 CLOSE_WAIT\uac00 \ubc1c\uc0dd\ud558\ub294 \uacbd\uc6b0\ub3c4 \uc608\ubc29\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\u2026","rel":"","context":"In &quot;\uae30\uc220\uc790\ub8cc&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":61,"url":"https:\/\/blog.box.kr\/?p=61","url_meta":{"origin":375,"position":4},"title":"WebtoB + JEUS + web application","date":"2014-06-12","format":false,"excerpt":"WebtoB + JEUS + web application webgosu.egloos.com\/9123240 1. WebtoB \uc124\uce58 1.1 \uc124\uce58\ud30c\uc77c, \ub77c\uc774\uc13c\uc2a4(license.dat)\uc900\ube44 1.2 \ub77c\uc774\uc13c\uc2a4 \uc801\uc6a9 : webtoB4.1licenselicense.dat 2. WebToB \uc2e4\ud589 2.1 \uc2e4\ud589\ud30c\uc77c\uc0dd\uc131(wsconfig) --> \ud658\uacbd\ud30c\uc77c \ucef4\ud30c\uc77c : wscfl -i [\ud658\uacbd\ud30c\uc77c] 2.2 \uc2e4\ud589 : wsboot --> wsboot -w (handler\uac00 process\ub4e4\uc744 \ud655\uc778\ud558\uba70 booting->\uc548\uc815\uc801\uc778 booting) 2.3 \uc885\ub8cc : wsdown --> wsdown -i (\uc9c8\uc758\ub97c\u2026","rel":"","context":"In &quot;JEUS &amp; WEBToB&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":124,"url":"https:\/\/blog.box.kr\/?p=124","url_meta":{"origin":375,"position":5},"title":"Spring Framework + Akka Actor + Maven \uc0ac\uc6a9\ud558\uae30","date":"2014-06-23","format":false,"excerpt":"Spring Framework + Akka Actor + Maven \uc0ac\uc6a9\ud558\uae30 \uac1c\ubc1c \uc911\uc5d0 \uc694\uccad\uc5d0 \ub300\ud55c \ub85c\uadf8\ub97c \ub0a8\uae30\ub294 \ubd80\ubd84\uc774 \uc788\ub294\ub370 \ub85c\uac70\ub97c \uc0ac\uc6a9\ud558\uae30\uc5d0 \ubd80\uc871\ud55c \ubd80\ubd84\uc774 \uc788\uace0 async\ub85c \ucc98\ub9ac\ud574\uc57c \ud558\ub294 \ubd80\ubd84\uc774 \uc0dd\uaca8 akka actor\ub97c \uc0ac\uc6a9\ud558\uc5ec \uad6c\ud604\ud558\uac8c \ub418\uc5c8\ub2e4. akka.io \uc0ac\uc774\ud2b8\uc758 \uba54\ub274\uc5bc\uc744 \ud655\uc778\ud574\ubcf4\uba74.. Spring \uc5f0\uacc4 \uac1c\ubc1c\uc744\u00a01.3.1\uae4c\uc9c0\ub9cc \uc9c0\uc6d0\ud558\uace0 \uc788\uace0 \ub2e4\uc74c \ubc84\uc804\uc778\u00a02.0.5\uc5d0\uc11c\ub294 \uc544\uc9c1 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc774 \uc548\ub418\uc5c8\ub2e4\ub294 \uba54\uc138\uc9c0\uac00 \ub098\uc640 \uc788\ub2e4. \uc774\ubc88 \ud3ec\uc2a4\ud2b8\uc5d0\uc11c\ub294\u2026","rel":"","context":"In &quot;JAVA&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/375"}],"collection":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=375"}],"version-history":[{"count":0,"href":"https:\/\/blog.box.kr\/index.php?rest_route=\/wp\/v2\/posts\/375\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.box.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}