action,dao和service在spring中的配置

这篇文章主要是对action,dao和service在spring中的配置,在本项目当中会有多个action,action也比较复杂,action中有很多相同的代码,所以考虑了使用一个BaseAction,之后的action都要继承这个BaseAction,在spring中的配置就比较简单了,例如:

Html代码
  1. <bean id="baseAction" class="com.action.BaseAction"  
  2.         abstract="true">  
  3.         <property name="authenticationFactory" ref="authenticationFactory" />  
  4.     </bean>  
  5.   
  6.     <bean id="testAction" class="com.action.TestAction"  
  7.         parent="baseAction"  scope="prototype"></bean>  
在上面用到了 authenticationFactory这个引用,这个是配置在service当中的,那问题是如何在action中引用到此service,这是我们需要将这几个配置文件都在web.xml文件当中使用contextConfigLocation这个param-name属性配置将这些文件在应用启动时就加载初始化这些配置文件,这样在整个应用的过程当中都能使用配置文件当中的相关配置。如果某个action引用到别的service,可以根据以上配置来进行相应的引用。

接下来配置service,service的配置就是对一些service类的注入,在本项目当中操作数据库是使用面向接口方式来操作的,即分别写一个service的接口定义需要操作的方法和一个dao接口定义需要对数据库操作的增删改查,然后分别实现这两个接口,dao的实现类对后台的数据库进行操作(主要还是通过之前封装好的DaoSupport类来操作),然后在service的实现类当中引用dao的实现类以实现数据操作。这样的话在service的配置当中必然会引用到dao,如下:

Html代码
  1. <bean id="clubService" class="com.service.impl.ClubServiceImpl">  
  2.         <property name="dao1" ref="dao1" />  
  3.         <property name="dao2" ref="dao2" />  
Html代码
  1. <span style="white-space: pre;">  </span>.....  
  2.     </bean>  
那么这里的ref在哪里配置呢?这是我们再独立出来一个配置文件,主要是对于dao的配置,上面说到dao是直接操作数据库的,那么数据库的配置必然需要在dao的配置文件当中体现以实现数据库配置的作用。例如:

Html代码
  1. <import resource="database/databaseContext.xml"/><!--dataBaseContext.xml文件时上文说到的关于hibernate,事务,spring的那个配置文件-->  
  2.       
  3.     <bean id="daoSupport" class="com.dao.DaoSupport" abstract="true">  
  4.         <property name="slaveHibernateTemplate" ref="slaveHibernateTemplate" />  
  5.     </bean>  
  6.       
  7.     <bean id="daoGameSF" parent="daoSupport">  
  8.         <property name="sessionFactory" ref="gameSessionFactory" />  
  9.     </bean>  
Html代码
  1. <bean id="userTokenDao" class="com.dao.core.impl.UserTokenDaoImpl" parent="daoGameSF"></bean><!--这里的userTokenDao就是上面service中ref的值,其他根据具体情况来配置就行了-->  
这样配置之后其实就把dao和数据库之前联系起来了,达到了dao对数据库的事务控制了。

相关的配置基本上已经完成了,但是之前说到的mysql主从切换类我们还没有对它进行配置,不配置是起不到什么作用的,在这里配置如下:

Html代码
  1. <bean id="masterSlaveAdvice" class="com.interceptor.MasterSlaveAdvice">  
  2.         <property name="enabled" value="true" />  
  3.     </bean>  
  4.     <bean id="cacheAdvice" class="com.interceptor.CacheAdvice"><!--此类是关于memcache的缓存处理的类,在这里就不解释了-->  
  5.         <property name="enabled" value="true" />  
  6.         <property name="printCacheLog" value="true" />  
  7.     </bean>  
  8.   
  9.     <bean  
  10.         class="org.springframework.aop.aspectj.AspectJExpressionPointcutAdvisor">  
  11.         <property name="advice" ref="serviceAdvice" />  
  12.         <property name="order" value="3" />  
  13.         <property name="expression">  
  14.             <value>  
  15.                 execution(* com..service..*.*(..))  
  16.            </value>  
  17.         </property>  
  18.     </bean>  
  19.     <bean id="serviceAdvice" class="com.interceptor.ServiceMethodInterceptor">  
  20.         <property name="printCostTime" value="true" />  
  21.         <property name="befordMethodAdvices">  
  22.             <list>  
  23.                 <ref bean="cacheAdvice" />  
  24.                 <ref bean="masterSlaveAdvice" />  
  25.             </list>  
  26.         </property>  
  27.         <property name="afterMethodAdvices">  
  28.             <list>  
  29.                 <ref bean="cacheAdvice" />  
  30.                 <ref bean="masterSlaveAdvice" />  
  31.             </list>  
  32.         </property>  
  33.     </bean>  
这样配置之后就能够在对service操作的过程中主从切换的作用了。 至此,功能性配置文件基本上已经完成。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java开发,我们经常需要使用到DAO(Data Access Object)、ActionService和IML(Implentation)等组件。这些组件可以帮助我们实现数据库操作、业务逻辑处理等工作。 首先,DAO是数据访问对象,它用于封装对数据库的操作。在Java,我们可以使用MyBatis、Hibernate等框架自动生成DAO,这样可以避免手动编写大量的数据库操作代码,提高开发效率。DAO的主要作用是封装对数据库的增删改查等操作,同时也可以处理事务。 其次,Action是控制器组件,用于接收用户请求并调用Service层处理业务逻辑。在开发Web应用时,我们可以使用框架如Struts、Spring MVC等自动生成Action,这样可以简化请求的处理过程。Action负责接收用户请求参数、调用Service层方法并将结果返回给用户。 Service是业务逻辑层组件,它负责处理具体的业务逻辑。Service层通常需要调用DAO层进行数据库操作,并且可以进行一些复杂的业务处理,如事务管理、数据验证等。通过自动生成Service,可以减少重复的业务逻辑编写,提高代码的复用性和维护性。 IML是Implentation的缩写,它表示实现类。在Java,我们可以通过接口和实现类的方式来组织代码结构。使用IML可以将接口和具体的实现分离,提高代码的灵活性。比如,我们可以通过接口定义DAOService的方法,在IML实现具体的功能。 总结起来,自动生成DAOActionService和IML等组件可以提高开发效率,减少重复的代码编写,同时也有助于代码的组织和维护。通过框架和工具的支持,我们可以更加专注于业务逻辑的实现,而不必过多关注底层的数据库操作和请求处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值