J2EE进阶(四)Spring配置文件详解

前言

Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。

下面列举的是一份比较完整的配置文件模板,文档中各XML标签节点的基本用途也给出了详细的解释,这些XML标签节点在后续的知识点中均会用到,熟练掌握了这些XML节点及属性的用途后,为我们动手编写配置文件打下坚实的基础。

下面,就上面的配置列举一个示例:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
  6. <!-- 定义使用C3P0连接池的数据源 -->
  7. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  8. <!-- 指定连接数据库的JDBC驱动 -->
  9. <property name="driverClass">
  10. <value>com.mysql.jdbc.Driver</value>
  11. </property>
  12. <!-- 连接数据库所用的URL -->
  13. <property name="jdbcUrl">
  14. <value>jdbc:mysql://localhost:3306/eportal?useUnicode=
  15. true&characterEncoding=gbk</value>
  16. </property>
  17. <!-- 连接数据库的用户名 -->
  18. <property name="user">
  19. <value>root</value>
  20. </property>
  21. <!-- 连接数据库的密码 -->
  22. <property name="password">
  23. <value>root</value>
  24. </property>
  25. <!-- 设置数据库连接池的最大连接数 -->
  26. <property name="maxPoolSize">
  27. <value>20</value>
  28. </property>
  29. <!-- 设置数据库连接池的最小连接数 -->
  30. <property name="minPoolSize">
  31. <value>2</value>
  32. </property>
  33. <!-- 设置数据库连接池的初始化连接数 -->
  34. <property name="initialPoolSize">
  35. <value>2</value>
  36. </property>
  37. <!-- 设置数据库连接池的连接的最大空闲时间,单位为秒 -->
  38. <property name="maxIdleTime">
  39. <value>20</value>
  40. </property>
  41. </bean>
  42. <!-- 定义Hibernate的SessionFactory -->
  43. <bean id="sessionFactory" class="org.springframework.orm.
  44. hibernate3.LocalSessionFactoryBean">
  45. <!-- 依赖注入上面定义的数据源dataSource -->
  46. <property name="dataSource" ref="dataSource" />
  47. <!-- 注册Hibernate的ORM映射文件 -->
  48. <property name="mappingResources">
  49. <list>
  50. <value>com/eportal/ORM/News.hbm.xml</value>
  51. <value>com/eportal/ORM/Category.hbm.xml</value>
  52. <value>com/eportal/ORM/Memberlevel.hbm.xml</value>
  53. <value>com/eportal/ORM/Cart.hbm.xml</value>
  54. <value>com/eportal/ORM/Traffic.hbm.xml</value>
  55. <value>com/eportal/ORM/Newsrule.hbm.xml</value>
  56. <value>com/eportal/ORM/Merchandise.hbm.xml</value>
  57. <value>com/eportal/ORM/Admin.hbm.xml</value>
  58. <value>com/eportal/ORM/Orders.hbm.xml</value>
  59. <value>com/eportal/ORM/Cartselectedmer.hbm.xml</value>
  60. <value>com/eportal/ORM/Newscolumns.hbm.xml</value>
  61. <value>com/eportal/ORM/Member.hbm.xml</value>
  62. </list>
  63. </property>
  64. <!-- 设置Hibernate的相关属性 -->
  65. <property name="hibernateProperties">
  66. <props>
  67. <!-- 设置Hibernate的数据库方言 -->
  68. <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  69. <!-- 设置Hibernate是否在控制台输出SQL语句,开发调试阶段通常设为true -->
  70. <prop key="show_sql">true</prop>
  71. <!-- 设置Hibernate一个提交批次中的最大SQL语句数 -->
  72. <prop key="hibernate.jdbc.batch_size">50</prop>
  73. <prop key="show_sql">50</prop>
  74. </props>
  75. </property>
  76. </bean>
  77. <!--定义Hibernate的事务管理器HibernateTransactionManager -->
  78. <bean id="transactionManager"
  79. class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  80. <!-- 依赖注入上面定义的sessionFactory -->
  81. <property name="sessionFactory" ref="sessionFactory" />
  82. </bean>
  83. <!--定义Spring的事务拦截器TransactionInterceptor -->
  84. <bean id="transactionInterceptor"
  85. class="org.springframework.transaction.interceptor.TransactionInterceptor">
  86. <!-- 依赖注入上面定义的事务管理器transactionManager -->
  87. <property name="transactionManager" ref="transactionManager" />
  88. <!-- 定义需要进行事务拦截的方法及所采用的事务控制类型 -->
  89. <property name="transactionAttributes">
  90. <props>
  91. <!-- 以browse、list、load、get及is开头的所有方法采用只读型事务控制类型 -->
  92. <prop key="browse*">PROPAGATION_REQUIRED,readOnly</prop>
  93. <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>
  94. <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
  95. <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
  96. <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
  97. <!-- 所有方法均进行事务控制,如果当前没有事务,则新建一个事务 -->
  98. <prop key="*">PROPAGATION_REQUIRED</prop>
  99. </props>
  100. </property>
  101. </bean>
  102. <!-- 定义BeanNameAutoProxyCreatorf进行Spring的事务处理 -->
  103. <bean class="org.springframework.aop.framework.autoproxy.
  104. BeanNameAutoProxyCreator">
  105. <!-- 针对指定的bean自动生成业务代理 -->
  106. <property name="beanNames">
  107. <list>
  108. <value>adminService</value>
  109. <value>columnsService</value>
  110. <value>newsService</value>
  111. <value>crawlService</value>
  112. <value>memberLevelService</value>
  113. <value>memberService</value>
  114. <value>categoryService</value>
  115. <value>merService</value>
  116. <value>cartService</value>
  117. <value>ordersService</value>
  118. <value>trafficService</value>
  119. </list>
  120. </property>
  121. <!-- 这个属性为true时,表示被代理的是目标类本身而不是目标类的接口 -->
  122. <property name="proxyTargetClass">
  123. <value>true</value>
  124. </property>
  125. <!-- 依赖注入上面定义的事务拦截器transactionInterceptor -->
  126. <property name="interceptorNames">
  127. <list>
  128. <value>transactionInterceptor</value>
  129. </list>
  130. </property>
  131. </bean>
  132. <!-- 装配通用数据库访问类BaseDAOImpl -->
  133. <bean id="dao" class="com.eportal.DAO.BaseDAOImpl">
  134. <property name="sessionFactory" ref="sessionFactory" />
  135. </bean>
  136. <!-- 部署系统用户管理业务逻辑组件AdminServiceImpl -->
  137. <bean id="adminService" class="com.eportal.service.AdminServiceImpl">
  138. <property name="dao" ref="dao" />
  139. </bean>
  140. <!-- 部署新闻栏目管理业务逻辑组件ColumnsServiceImpl -->
  141. <bean id="columnsService" class="com.eportal.service.ColumnsServiceImpl">
  142. <property name="dao" ref="dao" />
  143. </bean>
  144. <!-- 部署订单管理业务逻辑组件OrderServiceImpl -->
  145. <bean id="ordersService" class="com.eportal.service.OrderServiceImpl">
  146. <property name="dao" ref="dao" />
  147. </bean>
  148. <!-- 部署流量统计业务逻辑组件TrafficServiceImpl -->
  149. <bean id="trafficService" class="com.eportal.service.TrafficServiceImpl">
  150. <property name="dao" ref="dao" />
  151. </bean>
  152. <!-- 部署Struts 2负责系统用户管理的控制器AdminAction -->
  153. <bean id="adminAction" class="com.eportal.struts.action.
  154. AdminAction" scope="prototype">
  155. <property name="service" ref="adminService" />
  156. </bean>
  157. <!-- 部署Struts 2负责新闻栏目管理的控制器ColumnsAction -->
  158. <bean id="columnsAction" class="com.eportal.struts.action.
  159. ColumnsAction" scope="prototype">
  160. <property name="service" ref="columnsService" />
  161. </bean>
  162. <!-- 部署Struts 2负责新闻管理的控制器NewsAction -->
  163. <bean id="newsAction" class="com.eportal.struts.action.
  164. NewsAction" scope="prototype">
  165. <property name="service" ref="newsService" />
  166. <property name="columnsService" ref="columnsService" />
  167. </bean>
  168. <!-- 部署Struts 2负责新闻采集规则管理的控制器CrawlAction -->
  169. <bean id="crawlAction" class="com.eportal.struts.action.
  170. CrawlAction" scope="prototype">
  171. <property name="service" ref="crawlService" />
  172. <property name="columnsService" ref="columnsService" />
  173. </bean>
  174. </beans>

美文美图

J2EE进阶(四)Spring配置文件详解的更多相关文章

  1. Spring配置文件详解 – applicationContext.xml文件路径

    Spring配置文件详解 – applicationContext.xml文件路径 Java编程                 spring的配置文件applicationContext.xml的默 ...

  2. spring配置文件详解--真的蛮详细

    spring配置文件详解--真的蛮详细   转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...

  3. [转载]Spring配置文件详解一:

    原文地址:与base-package="com.xx">Spring配置文件详解一:<context:annotation-config/>与<contex ...

  4. spring配置文件详解以及beans:beans标签

    第一行的意思就是你这个文件的默认schema为security,所以你的beans定义就需要加上前缀beans 一般的定义文件默认都是beans: 下面是spring配置文件的详解: 转自:http: ...

  5. Spring配置文件详解 - applicationContext.xml文件路径

    spring的配置文件applicationContext.xml的默认地址在WEB-INF下,只要在web.xml中加入代码 org.springframework.web.context.Cont ...

  6. Spring配置文件详解

      转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常有用 spring配置文件是用于指导Sp ...

  7. Spring 配置文件详解 (以2.5为例)

    转载自:http://blog.csdn.net/zzjjiandan/article/details/22922847          Spring配置文件是用于指导Spring工厂进行Bean生 ...

  8. Spring配置文件详解:<context:annotation-config/>和<context:component-scan base-package=""/>和<mvc:annotation-driven />

    <context:annotation-config/> 在基于主机方式配置Spring时,Spring配置文件applicationContext.xml,你可能会见<contex ...

  9. 【 spring配置文件详解】

    转自: http://book.51cto.com/art/201004/193743.htm Spring配置文件是用于指导Spring工厂进行Bean生产.依赖关系注入(装配)及Bean实例分发的 ...

随机推荐

  1. C语言第二次作业-----顺序结构

    一:改错题 (1)输出指定信息: 将给定源代码输入编译器: 执行编译命令,发现编译器报错,错误信息如下: 经检查,发现源程序将"stdio.h"误拼为"stido.h&q ...

  2. Linux 查看系统硬件信息汇总 (部份实例详解Centoso为例)

    1.cpu #lscpu命令,查看的是cpu的统计信息.(部分旧版本不支持) Disk /dev/sda: bytes heads, sectors/track, cylinders Units = ...

  3. SpringMVC中HandlerMapping的三种配置方式

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-/ ...

  4. JavaScript反调试技巧

    一.函数重定义 这是一种最基本也是最常用的代码反调试技术了.在JavaScript中,我们可以对用于收集信息的函数进行重定义.比如说,console.log()函数可以用来收集函数和变量等信息,并将其 ...

  5. TCP/IP学习笔记__mbuf

    Socket发送和接收数据都是写入和读取mbuf(存储器缓存)来完成的.下面着重介绍下Sendto函数与mbuf的关系: 以UDP协议为例: 1.UDP的输出执行过程: UDP的输出执行过程 2.协议 ...

  6. 152. Maximum Product Subarray(中等, 神奇的 swap)

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  7. 各种异常 及异常类和Object类

    Day05 异常 Object类 equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较.Object类中的equals方法内部使用的就是==比较运算符. 2. 描述人这个 ...

  8. 浅谈static其一之不死变量

    在学习汇编的过程中,小有所悟,遂把自己所思所想记下,以便日后查阅. 首先说说我对这个关键字的理解.static字面上就是静止的.静态的.不变的之类的意思,所以在被它修饰之后,应该也会带有这样的一些特点 ...

  9. C/C++知识大纲(只有作者看得懂的笔记)

    c标准库部分冷门函数. stdio.h char buf[256]; sscanf(buf,"%s",&buf); sprintf(buf,"Name: %s&q ...

  10. CSS布局套路

    这篇笔记的目的是记录分别应用float和flex布局的方法.主要是对遇到的问题进行总结. 1.float布局 总结: 1.1 使用float布局要清除浮动,清除的方法是,在父元素添加如下样式 .cle ...