|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。
Spring倾覆了之前的编程形式,引进了IOC等全新的观点,广受人人的喜好。今朝年夜多半j2ee项目都已接纳Spring框架。Spring最年夜的成绩是太多的设置文件,使得你不但必要保护程序代码,还必要分外往保护相干的设置文件。最典范的就是事件设置(注:这里的“事件设置”都指“声明式事件设置”),在Spring中举行事件设置除界说对象本身的bean外,还必要界说一个举行事件代办署理的bean.假如你有n个类必要引进事件,那末你就必需界说2n个bean。保护这些bean的价值是非常高贵的,以是必需要对事件设置举行减化。假如你是基于Spring举行架构计划,那末作为一个好的架构计划师,应当把一些大众的方面举行简化,让项目标开辟职员只体贴项目标营业逻辑,而不要消费太多的精神往体贴营业逻辑以外的太多工具。以是作为一个好的架构就应当把事件办理举行简化,让程序员花在编程以外的事情最小化。
1.Spring声明式事件设置的几种办法
在Spring中举行事件把持起首要选择得当的事件办理器,其次为程序选择分别事件的战略。假如只要单个事件性资本,能够从“单一资本”的PlatformTransactionManger完成傍边选择一个,这些完成有:DataSourceTransactionManager,HibernateTransactionManager,JdoTransactionManager,PersistenceBrokerTransactionManager和JmsTransactionManager。依据你所接纳的数据库耐久化手艺选择。假如你的项目运转于撑持JTA的服务器,那末将选择JtaTransactionManger,将会撑持多资本事件。
下表将为你选择得当的事件办理器供应参考。
手艺事件办理器内建的事件撑持JDBCDataSurceTransactionManagerJtaTransactionManagerJdbcTemplate和org.springframework.jdbc.object包中的一切类IBATISDataSourceTransactionManagerJtaTransactionManagerSqlMapClientTemplate和SqlClientTemplateHibernateHibernateTransactionManagerJtaTransactionManagerHibernateTemplate和HibernateInterceptorJDOJdoTransactionManagerJtaTransactionManagerJdoTemplate和JdoInterceptorApacheOJBPersistenceBrokerTransactionManagerJtaTransactionManagerPersistenceBrokerTemplateJMSJmsTransactionManagerJmsTemplate
在分别事件时,我们必要举行事件界说,也就是设置事件的属性。事件的属性有传布行业,断绝级别,超时价及只读标记。TransactionAttribute接口指定哪些非常将招致一个回滚,哪些应当一次性提交。
(1)利用ProxyFactoryBean和TransactionInterceptor
<!--界说当地数据源-->
<beanid="dataSource"name="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">
<propertyname="driverClassName"value="${jdbc.driverClassName}"/>
<propertyname="url"value="${jdbc.url}"/>
<propertyname="username"value="${jdbc.username}"/>
<propertyname="password"value="${jdbc.password}"/>
</bean>
<!--!界说单个jdbc数据源的事件办理器-->
<beanid="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<propertyname="dataSource"ref="dataSource"/>
</bean>
<!—界说拦阻器-->
<beanid="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<propertyname="transactionManager">
<refbean="transactionManager"/>
</property>
<propertyname="transactionAttributes">
<props>
<propkey="insert*">PROPAGATION_REQUIRED</prop>
<propkey="update*">PROPAGATION_REQUIRED</prop>
<propkey="save*">PROPAGATION_REQUIRED</prop>
<propkey="find*">PROPAGATION_SUPPORTS,readOnly</prop>
<propkey="get*">PROPAGATION_SUPPORTS,readOnly</prop>
<propkey="*">PROPAGATION_SUPPORTS,readOnly</prop>
</props>
</property>
</bean>
<!—界说营业对象-->
<beanid="com.prs.application.ehld.sample.biz.service.sampleService.target"
class="com.prs.application.ehld.sample.biz.service.impl.SampleServiceImpl">
<propertyname="userInfoDAO"
ref="com.prs.application.ehld.sample.integration.dao.userInfoDAO">
</property>
</bean>
<!—界说营业对象的事件代办署理对象-->
<beanid="com.prs.application.ehld.sample.biz.service.sampleService"class="org.springframeword.aop.framework.ProxyFacgtoryBean">
<propertyname="target"
ref="com.prs.application.ehld.sample.biz.service.sampleService.target">
</property>
<propertyname="interceptorNames">
<value>transactionInterceptor</value>
</property>
</bean>
经由过程ProxyFacgtoryBean和TransactionInterceptor组合利用,能够对事件举行更多的把持。一切必要事件把持的对象能够共享一个transactionInterceptor的事件属性。
<p>
学习JAVA的目的更多的是培养自身的工作能力,我觉得工作能力的一个核心就是:独立思考能力,因为只有独立思考后,才会有自己的见解 |
|