• maven scope provided和runtime的例子


    maven常用的scope有compile,provided,runtime,test。

    complie是默认值,表示在build,test,runtime阶段的classpath下都有依赖关系。
    test表示只在test阶段有依赖关系,例如junit
    provided表示在build,test阶段都有依赖,在runtime时并不输出依赖关系而是由容器提供,例如web war包都不包括servlet-api.jar,而是由tomcat等容器来提供
    <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>3.0.1</version>
    <scope>provided</scope>
    </dependency>
     

    runtime表示在构建编译阶段不需要,只在test和runtime需要。这种主要是指代码里并没有直接引用而是根据配置在运行时动态加载并实例化的情况。虽然用runtime的地方改成compile也不会出大问题,但是runtime的好处是可以避免在程序里意外地直接引用到原本应该动态加载的包。例如JDBC连接池
    <dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
    <scope>runtime</scope>
    </dependency>
    spring applicationContext.xml

    <!-- mysql -->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    </bean>
    <!-- Connection Pool -->
    <bean id="dataSource" destroy-method="close"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="${ckm.jdbc.driver}" />
    <property name="url" value="${ckm.jdbc.url}" />
    <property name="username" value="${ckm.jdbc.username}" />
    <property name="password" value="${ckm.jdbc.password}" />
    <property name="initialSize" value="6" />
    </bean>
     
    ---------------------
    作者:pengpengzhou
    来源:CSDN
    原文:https://blog.csdn.net/pengpengzhou/article/details/81743567
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    ASP.NET 4.0 与 Entity Framework 4第一篇采用ModelFirst 开发方式创建数据库
    Web SSH 客户端Ajaxterm安装
    新浪微博Wordpress插件博客微博安装手册
    Sharetronix 微博客系统安装手册
    ASP.NET 4.0 与 Entity Framework 4第三篇使用Entity Framework调用存储过程
    QQ概念版体验[多图]
    您博客应该有的8个设计要素
    Centos 系统更新Python
    每天一个linux命令(28):tar命令
    C# 类(5) 重载
  • 原文地址:https://www.cnblogs.com/Jeely/p/10794959.html
Copyright © 2020-2023  润新知