OA注解方式和配置xml文件的方式的区别
OA注解方式和配置xml文件的方式的区别:
SSH结合做OA总结:
注解方式:
1.在applicationcontext-db.xml文件中要配置hibernateTemplate,且某个具体dao的实现类不能继承hibernateTemplate(继承之后其自身的set和get会使spring在启动的时候报错).
2.在applicationcontext-db.xml文件中仍需配置sessionFactory
3.需要配置<context:component-scan base-package="com.itheima03.oa"></context:component-scan>使spring扫描注解过的类和类中的成员变量(这样就不用一个一个bean一个bean的配置了)
4.需要配置<tx:annotation-driven transaction-manager="transactionManager"/>注解形式的声明式事务处理(在这里配置过后,在想要开启事务的方法上(在service层配置,保证一个业务逻辑的数据完整性,因为一个业务逻辑可能操作多次数据库)配置注解@Transactional(readOnly=false/true),即手动的给某个业务逻辑配置只读/读写的事务)
5.注解的名称及其格式和含义:
1.@Resource(name="成员变量的名字")配置类中所使用的成员变量,即bean标签中的property属性中ref标签中所引用的类成员变量
2.@Service("Service的名字")配置service层的某个service,即bean标签中的bean
3.@Repository("Dao的名字")配置dao层的某个dao,即bean标签中的一个bean
4.@Controller("Action的名字")配置action层的某个action,即bean标签中的一个bean
@Scope("prototype")配置某个action为单利模式,交给struts2去管理,而不是让spring去管理
配置xml文件的方式:
1.在applicationcontext-db.xml文件中不需要配置hibernateTemplate(因为可以直接继承HibernateDaoSupport)
2.因为每个继承HibernateDaoSupport的某个具体dao的实现类都拥有类成员变量sessionFactory,所以要配置sessionFactory
3.每个具体的dao、service、action及其类中的成员变量都需要配置
4.配置声明式事务的方式
<tx:advice id="tx" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="save*" read-only="false"/>
<tx:method name="update*" read-only="false"/>
<tx:method name="delete*" read-only="false"/>
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* com.itheima03.oa.service.impl.*.*(..))" id="perform"/>
<aop:advisor advice-ref="tx" pointcut-ref="perform"/>
</aop:config>
注解与配置xml文件最大的不同就是:配置文件的方式,用哪个配置那个,注解的方式,想要用哪个,哪个就必须得被注解,所以才有注解方式中的第一条。
浙公网安备 33010602011771号