A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯超 高级黑马   /  2014-4-29 12:28  /  1141 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冯超 于 2014-4-29 12:30 编辑

学过Spring的同学都知道,Spring核心两大模块一个是AOP,另外一个是控制翻转。Spring中的配置文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:p="http://www.springframework.org/schema/p"
  4.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
  5.         xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
  6.         xsi:schemaLocation="http://www.springframework.org/schema/beans
  7.            http://www.springframework.org/schema/beans/spring-beans.xsd
  8.            http://www.springframework.org/schema/context
  9.            http://www.springframework.org/schema/context/spring-context-3.2.xsd
  10.            http://www.springframework.org/schema/aop
  11.            http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
  12.            http://www.springframework.org/schema/tx
  13.            http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
  14.         <!-- 配置action bean -->
  15. <!--         <bean id="userServiceDao" class="Com.feng.service.UserService"/>  -->

  16.         
  17.         
  18.         
  19.         
  20.         
  21.         
  22.         
  23.         
  24.         
  25.         
  26.         
  27.         
  28.         
  29.         
  30.         
  31.         <!-- 配置信息分离 -->
  32.         <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  33.                  <property name="locations">
  34.             <list>
  35.                 <value>classpath:db.properties</value>
  36.             </list>   
  37.                  </property>
  38.         </bean>
  39.         
  40.         <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  41.             <property name="driverClass" value="${JDBC.DBDriver}"></property>  
  42.             <property name="jdbcUrl" value="${JDBC.Connection}"></property>  
  43.             <property name="user" value="${JDBC.User}"></property>  
  44.             <property name="password" value="${JDBC.Password}"></property>  
  45.         </bean>
  46.         
  47.         <!-- 配置sessionFactory -->
  48.         
  49.         <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
  50.             p:dataSource-ref="dataSource"
  51.             p:configLocation="classpath:hibernate.cfg.xml"
  52.             />
  53.                 <!-- Hibernate事物管理器 用来在service层面上进行管理 达到平台无关性 -->
  54.         
  55.         <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  56.             <property name="sessionFactory" ref="sessionFactory" />
  57.         </bean>

  58.         <!-- 配置事物通知 -->
  59.         <tx:advice id="txAdvice" transaction-manager="txManager">
  60.             <tx:attributes>
  61.                        <!--读 -->
  62.                 <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT"/>
  63.                 <tx:method name="delete*" propagation="REQUIRED" isolation="DEFAULT"/>
  64.                 <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT"/>
  65.                 <tx:method name="batch*" propagation="REQUIRED" isolation="DEFAULT"/>
  66.                 <!-- 写 -->
  67.                 <tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
  68.                 <tx:method name="get*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
  69.                 <tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
  70.                
  71.                 <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT"/>
  72.             </tx:attributes>
  73.         </tx:advice>
  74.         <!-- AOP -->
  75.         <aop:config>
  76.             <aop:pointcut id="txPointcut" expression="execution(* com.feng.service.*.*(..))"/>  
  77.             <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut"/>
  78.         </aop:config>
  79. </beans>
复制代码

详细说在bean.xml进行诸如:

        <bean id="userService" class="com.feng.service.UserService">
            <!-- property调用的是set方法
                 ref 引用的是bean
             -->
            <property name="userDao" ref="UserDao"></property>
        </bean>        

==userService = new UserService();  属性userDao也被实例化
==
  1. package com.feng.service.imp;

  2. import javax.annotation.Resource;

  3. import org.springframework.stereotype.Service;

  4. import com.feng.dao.BaseDao;
  5. import com.feng.model.User;
  6. import com.feng.service.UserService;
  7. /**
  8. *
  9. * @author fengchao
  10. *
  11. */
  12. //像Spring容器中注入UserServiceImp 类
  13. @Service("userService")
  14. public class UserServiceImp extends BaseServiceImp<User> implements UserService{
  15.         
  16.         @Resource(name="userDao")
  17.         public void setBaseDao(BaseDao<User> dao) {
  18.                 // TODO Auto-generated method stub
  19.                 super.setBaseDao(dao);
  20.         }

  21. }
复制代码


        <bean id="UserDao" class="com.feng.dao.imp.UserDaoHibernateImp"></bean>         
==UserDao = new UserDaoHibernateImp();==
  1. package com.feng.dao.imp;

  2. import org.springframework.stereotype.Repository;

  3. import com.feng.model.User;


  4. /**
  5. *
  6. * @author fengchao
  7. *
  8. * @param <User>
  9. */
  10. //像Spring中注入 UserDaoImp类
  11. @Repository("userDao")
  12. public class UserDaoImp extends BaseDaoImp<User> {
  13.        
  14. }
复制代码


构造函数的就不说le !!!



5 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报

没什么值得学习的···菜鸟!
回复 使用道具 举报
冯超 发表于 2014-5-5 15:22
没什么值得学习的···菜鸟!

哦哦....
回复 使用道具 举报
赞一个!很不错的东西
回复 使用道具 举报
Silent_memory 发表于 2014-5-6 09:52
赞一个!很不错的东西

谢谢支持!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马