首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Linux频道
中国IT教育
Google
首页 资讯动态 认证考试 新手入门 核心技术 高级技术 J2EE J2ME Java&XML 开源技术 其他技术 RSS订阅 论坛 专题
您现在的位置: 中国IT实验室 >> Java >> J2EE >> 应用服务器 >> 正文

J2EE应用中运用“配置”的最佳实践


    这还不够,因为在项目中,我们往往可能在不同的DataSource的实现上切换。多数情况下,我们会使用类似C3P0这样的数据连接池,当然,也可能会通过JNDI来指定我们的DataSource。所以,我们在这里很有必要对JDBC连接相关的关注点再一次进行分离。引入一个jdbc.properties的文件指定JDBC相关的链接信息,并在Spring配置文件中导入这些配置:

    <!– A Local dataSource Definition using c3p0 connection pool –>
     <bean id=”dataSource” class=”com.mchange.v2.c3p0.ComboPooledDataSource” destroy-method=”close”>
      <property name=”driverClass” value=”${connection.driver_class}”/>
      <property name=”jdbcUrl” value=”${jdbc.connection.url}”/>
      <property name=”idleConnectionTestPeriod” value=”${jdbc.pool.c3p0.idle_connection_test_period}” />
      <property name=”preferredTestQuery” value=”${jdbc.pool.c3p0.preferred_test_query}” />
      <property name=”maxIdleTime” value=”${jdbc.pool.c3p0.max_idle_time}” />
      <property name=”properties”>
       <props>
        <prop key=”user”>${jdbc.connection.username}</prop>
        <prop key=”password”>${jdbc.connection.password}</prop>
        <prop key=”c3p0.acquire_increment”>${jdbc.pool.c3p0.acquire_increment}</prop>
        <prop key=”c3p0.max_size”>${jdbc.pool.c3p0.max_size}</prop>
        <prop key=”c3p0.min_size”>${jdbc.pool.c3p0.min_size}</prop>
       </props>
      </property>
     </bean>

     <!– Hibernate SessionFactory definition using exposed dataSource –>
     <!– hibernate.properties and hibernate.cfg.xml will be loaded on startup –>
     <bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
      <property name=”dataSource” ref=”dataSource”/>
      <property name=”mappingDirectoryLocations”>
                <list>
        <value>classpath*:persist/system</value>
        <value>classpath*:persist/role</value>
        <value>classpath*:persist/activity</value>
        <value>classpath*:persist/extension</value>
        <value>classpath*:persist/user</value>
                </list>
            </property>
     </bean>

    connection.driver_class=com.mysql.jdbc.Driver

    jdbc.connection.url=jdbc:mysql://192.168.1.251:3307/test
    jdbc.connection.username=root
    jdbc.connection.password=root

    jdbc.pool.c3p0.acquire_increment=2
    jdbc.pool.c3p0.max_size=20
    jdbc.pool.c3p0.min_size=2
    jdbc.pool.c3p0.preferred_test_query=’SELECT 1′
    jdbc.pool.c3p0.idle_connection_test_period=18000
    jdbc.pool.c3p0.max_idle_time=25000

    这样,一段配置变成了3个文件。但是通过重构,我们可以轻松在本地实现数据库切换(修改jdbc.properties),数据连接池切换(修改jdbc.properties和applicationContext.xml),hibernate的Global配置切换等功能。这些功能会提供你更加灵活的调试方式。

    3. 整理你的配置文件,不要让它们分散到各处

    这一点作为一个最佳实践提出来,主要是因为在项目中,我们可能使用到的技术框架和配置文件是很难预期的。而默认情况下,这些配置文件所存放的位置也不同,比如Spring,往往会把applicationContext.xml文件放在WEB-INF/目录下,而hibernate和struts默认是放在classpath下的。这就为管理配置文件带来了不便。所以,一个比较好的做法,是把我们的配置文件都放在一起。通过存放在不同的目录结构进行管理。例如,把所有的配置文件都放到classpath下。

    如果你用maven进行项目管理,maven会为你创建专门存放配置文件的目录(通常是一个叫做resource的目录)。如果不使用maven,我们也可以做类似的工作。以我个人的习惯为例,我喜欢在项目中建立一个叫做conf的source folder来存放所有的配置文件。由于conf是一个source folder,所以它会被类似eclipse这样的IDE自动编译到classpath下,那么我们就可以在这个目录下创建一些package,例如context的package专门存放Spring相关的配置文件,persistent专门存放ORM相关的配置文件,web专门存放表示层的配置文件。而其他的一些配置文件,则直接放到conf根目录下。

上一页  [1] [2] [3] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Java 频道导航