如何在Maven中配置Spring依赖

\u5982\u4f55\u5728Maven\u4e2d\u914d\u7f6eSpring\u4f9d\u8d56

\u5728Maven\u4e2dSpring\u7684\u57fa\u7840\u914d\u7f6e

Spring\u662f\u9ad8\u5ea6\u6a21\u5757\u5316\u7684\uff0c\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528Spring\u7684\u67d0\u4e2a\u5e93\u800c\u4e0d\u9700\u8981\u4f9d\u8d56Spring\u7684\u5176\u4ed6\u5e93\u3002\u6bd4\u5982\uff0c\u4f7f\u7528Spring Context\u5e93\u4e0d\u9700\u8981\u4f9d\u8d56Spring Persistence\u6216\u8005Spring MVC\u5e93\u3002
\u8ba9\u6211\u4eec\u5148\u4ece\u6700\u7b80\u5355\u5f00\u59cb\uff0c\u5728Maven\u4e2d\u914d\u7f6espring-context\u4f9d\u8d56\uff1a
3.2.8.RELEASE 4.0.2.RELEASE --> org.springframework spring-context ${org.springframework.version} runtime\u4e0a\u4f8b\u5b9a\u4e49\u7684\u5bf9spring-context\u7684\u4f9d\u8d56\uff0cspring-context\u5b9e\u73b0\u4e86Spring\u6ce8\u5165\u5bb9\u5668\u5e76\u4e14\u4f9d\u8d56\uff1aspring-core,spring-expression,spring-aop\u4ee5\u53caspring-beans\u3002\u8fd9\u4e9b\u4f9d\u8d56\u5305\u4f7f\u5bb9\u5668\u53ef\u4ee5\u652f\u6301Spring\u7684\u4e00\u4e9b\u6838\u5fc3\u6280\u672f\uff1aSpring\u6838\u5fc3\u7ec4\u4ef6,Spring EL\u8868\u8fbe\u5f0f (SpEL), \u9762\u5411\u5207\u9762\u7f16\u7a0b,JavaBean\u673a\u5236\u3002

\u6ce8\u610f\uff0c\u5728runtime\u8303\u56f4\u5b9a\u4e49\u8fd9\u4e2a\u4f9d\u8d56\uff0c\u56e0\u6b64\u9700\u6c42\u786e\u5b9a\u5728\u7f16\u8bd1\u671f\u95f4\u4e0d\u9700\u8981\u4f9d\u8d56\u76f8\u5173Spring\u7279\u5b9a\u7684API\u3002\u5728\u4e00\u4e9b\u9ad8\u7ea7\u5e94\u7528\u573a\u666f\u4e0b\uff0c\u4e00\u4e9bSpring\u4f9d\u8d56\u9879\u53ef\u4ee5\u4e0d\u7528\u914d\u7f6eruntime\u8303\u56f4\uff0c\u4f46\u662f\u5728\u76ee\u524d\u6bd4\u8f83\u7b80\u5355\u7684\u9879\u76ee\u573a\u666f\u4e0b\uff0c\u4e0d\u9700\u8981\u9488\u5bf9Spring\u7f16\u8bd1\u9879\u76ee\u53bb\u83b7\u5f97\u6574\u4e2a\u6846\u67b6\u7684\u5168\u90e8\u529f\u80fd\u3002

\u540c\u6837\u8981\u6ce8\u610f\u7684\u662f\uff0c\u4eceSpring 3.2\u5f00\u59cb\u4e0d\u9700\u8981\u5b9a\u4e49CGLIB\u4f9d\u8d56\uff08\u76ee\u524d\u7684\u7248\u672c\u662fCGLIB 3.0\uff09\u3002\u73b0\u5728\u4f7f\u7528\u5185\u5d4c\u5728spring-core JAR\uff08\u66f4\u591a\u8be6\u7ec6\u4fe1\u606f\u53ef\u4ee5\u67e5\u770b\u76f8\u5173[JIRA]https://jira.springsource.org/browse/SPR-9669("JIRA")\u4e2d\u7684cglib\u5305\uff08net.sf.cglib\u73b0\u5728\u4f7f\u7528org.springframework.cglib\u66ff\u4ee3\uff09\u3002

\u5728Maven\u914d\u7f6eSpring\u6301\u4e45\u5316\u6846\u67b6
\u73b0\u5728\u6765\u770b\u770bSpring\u6301\u4e45\u5316\u6846\u67b6\u7684\u914d\u7f6e\uff08\u4e3b\u8981\u662fspring-orm\uff09
org.springframework spring-orm ${org.springframework.version}\u4e0a\u9762\u7684\u914d\u7f6e\u589e\u52a0\u4e86Hibernate\u548cJPA\u529f\u80fd\u652f\u6301\uff0c\u6bd4\u5982HibernateTemplate\u548cJpaTemplate\u4ee5\u53ca\u4e00\u4e9b\u989d\u5916\u7684\u6301\u4e45\u5316\u76f8\u5173\u7684\u4f9d\u8d56\uff1aspring-jdbc\u548cspring-tx
\u5728JDBC\u6570\u636e\u8bbf\u95ee\u5e93\u5b9a\u4e49Spring JDBC\u652f\u6301\u4ee5\u53caJdbcTemplate\uff0cSpring-tx\u63d0\u4f9b\u4e86\u975e\u5e38\u7075\u6d3b\u7684\u4e8b\u52a1\u7ba1\u7406\u62bd\u8c61\u3002

\u5728Maven\u914d\u7f6eSpring MVC
\u8981\u589e\u52a0Spring Web\u548cServlet\u652f\u6301\uff0c\u9700\u8981\u5728\u4e0a\u9762\u5df2\u914d\u7f6e\u7684pom\u6587\u4ef6\u4e2d\u989d\u5916\u589e\u52a0\u4e24\u4e2a\u4f9d\u8d56\uff1a
org.springframework spring-web ${org.springframework.version} org.springframework spring-webmvc ${org.springframework.version}spring-web\u5305\u5305\u542bServlet\u548cPortlet\u6240\u9700\u8981\u901a\u7528\u7ec4\u4ef6\uff0cspring-webmvc\u5219\u5728Servlet\u73af\u5883\u4e2d\u542f\u7528MVC\u652f\u6301\u3002

\u7531\u4e8espring-webmvc\u4f9d\u8d56\u4e8espring-web\uff0c\u6240\u4ee5\u5b9a\u4e49\u4e86spring-webmvc\u4f9d\u8d56\u540e\uff0c\u53ef\u4ee5\u4e0d\u7528\u663e\u793a\u7684\u5728pom\u5b9a\u4e49spring-web\u3002

\u5728Maven\u4e2d\u914d\u7f6eSpring Test
\u53ef\u4ee5\u901a\u8fc7\u4e0b\u9762\u7684\u4f9d\u8d56\u914d\u7f6e\u5c06Spring Test\u5f15\u5165\u9879\u76ee
org.springframework spring-test ${spring.version} test\u4eceSpring 3.2\u5f00\u59cb\uff0cSpring MVC Test\u9879\u76ee\u5df2\u7ecf\u88ab\u5305\u542b\u5230\u6838\u5fc3\u7684Spring Test\u6846\u67b6\u4e2d\uff08\u539f\u6765\u662f\u4e00\u4e2a\u72ec\u7acb\u9879\u76ee\uff0c\u9879\u76ee\u6258\u7ba1\u5728GitHub\uff09\u3002\u6240\u4ee5\uff0c\u4eceSpring 3.2\u5f00\u59cb\uff0c\u4ec5\u9700\u8981\u5728\u4f9d\u8d56\u914d\u7f6e\u4e2d\u914d\u7f6espring-test\u4f9d\u8d56\u5373\u53ef\u3002

\u6ce8\u610f\uff1a\u5bf9\u4e8e\u4f7f\u7528Spring 3.1\u53ca\u4ee5\u4e0b\u7248\u672c\u7684\u5e94\u7528\u6765\u8bf4\uff0c\u72ec\u7acb\u7684spring-mvc-test\u4f9d\u8d56\u8fd8\u662f\u53ef\u4ee5\u4f7f\u7528\u7684\uff0c\u53ef\u4ee5\u53c2\u8003\u8fd9\u91cc\u8fdb\u884c\u914d\u7f6e\u3002\u4f46\u662f\uff0c\u8fd9\u4e2a\u4f9d\u8d56\u5df2\u7ecf\u4e0d\u518dMaven\u7684\u4e2d\u592e\u5e93\u4e2d\uff0c\u6240\u4ee5\u5982\u679c\u9700\u8981\u589e\u52a0\u4f9d\u8d56\u9700\u8981\u914d\u7f6e\u81ea\u5b9a\u4e49Maven\u5bb9\u5668\u3002

7. \u4f7f\u7528Milestones\uff08\u91cc\u7a0b\u7891\uff09\u7248\u672c
Spring\u7684\u6700\u65b0\u7a33\u5b9a\u7248\u672c\u4fdd\u5b58\u5728Maven\u7684\u4e2d\u592e\u5e93\uff0c\u5982\u679c\u9879\u76ee\u9700\u8981\u4f7f\u7528Spring\u7684\u91cc\u7a0b\u7891\u7248\u672c\uff0c\u9700\u8981\u5728pom\u4e2d\u914d\u7f6e\u81ea\u5b9a\u4e49\u5bb9\u5668\uff1a
repository.springframework.maven.milestone Spring Framework Maven Milestone Repository http://repo.spring.io/milestone/ \u5f53\u5bb9\u5668\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u9879\u76ee\u5c31\u53ef\u4ee5\u50cf\u4e0b\u9762\u793a\u4f8b\u4e00\u6837\u5b9a\u4e49\u4f9d\u8d56\u4e86\uff1a
org.springframework spring-core 3.2.0.RC28. \u4f7f\u7528Snapshots\uff08\u5feb\u7167\uff09\u7248\u672c
\u4e0e\u91cc\u7a0b\u7891\u7248\u672c\u4e00\u6837\uff0c\u5feb\u7167\u7248\u672c\u4e5f\u9700\u8981\u914d\u7f6e\u81ea\u5b9a\u4e49\u5bb9\u5668\u4f4d\u7f6e\uff1a
repository.springframework.maven.snapshot Spring Framework Maven Snapshot Repository http://repo.spring.io/snapshot/ \u5f53\u5feb\u7167\u5bb9\u5668\u4f4d\u7f6e\u914d\u7f6e\u5b8c\u6210\u540e\uff0c\u4e0b\u9762\u7684\u4f9d\u8d56\u914d\u7f6e\u5c31\u53ef\u4ee5\u4f7f\u7528\u4e86\uff1a
org.springframework spring-core 3.3.0.BUILD-SNAPSHOT\u5bf9\u4e8e4.x\u7248\u672c\u4e5f\u662f\u4e00\u6837\u7684\uff1a
org.springframework spring-core 4.0.3.BUILD-SNAPSHOT

1.1 spring-security-core

Spring Security\u7684\u6838\u5fc3\u529f\u80fd\u662f\u7531spring-security-core\u5305\u63d0\u4f9b\u7684\uff0c\u5305\u542b\u4e86\u8ba4\u8bc1\u548c\u8bbf\u95ee\u63a7\u5236\u529f\u80fd\u3001\u652f\u6301standalone\u5e94\u7528\u7a0b\u5e8f\u3001\u65b9\u6cd5\u7ea7\u5b89\u5168\u548cJDBC\u652f\u6301\u3002


3.2.3.RELEASE
4.0.4.RELEASE


org.springframework.security
spring-security-core
${org.springframework.security.version}

\u6ce8\u610f\uff1a\u6211\u4eec\u4f7f\u7528\u7684\u662f3.2.x\u7248\u672c\u7684Spring Security--Spring\u548cSpring Security\u6709\u7740\u4e0d\u540c\u7684\u7248\u672c\u8ba1\u5212\uff0c\u6240\u4ee5\u4ed6\u4eec\u7684\u7248\u672c\u53f7\u4e4b\u95f4\u6ca1\u6709\u4e00\u5bf9\u4e00\u5173\u7cfb\u3002

\u5982\u679c\u9879\u76ee\u4f7f\u7528\u7684\u662f\u8f83\u8001\u7248\u672c\u7684Spring\uff0c\u9700\u8981\u6ce8\u610f\u7684\u65f6Spring Security 3.1.x\u7248\u672c\u4e0d\u4f9d\u8d56\u4e8eSpring 3.1.x\u7248\u672c\uff0c\u56e0\u4e3aSpring Security 3.1.x\u7248\u672c\u5728Spring 3.1\u4e4b\u524d\u53d1\u5e03\u3002Spring\u7684\u8ba1\u5212\u662f\u5728\u540e\u7eed\u7684\u7248\u672c\u4e2d\uff0c\u4f7f\u53cc\u65b9\u7684\u7248\u672c\u53f7\u66f4\u4e3a\u63a5\u8fd1\uff0c\u66f4\u591a\u7ec6\u8282\u8bf7\u67e5\u770b\u8fd9\u4e2aJIRA\u3002\u6211\u4eec\u5c06\u5728\u540e\u9762\u7684\u5185\u5bb9\u4e2d\u770b\u770b\u8fd9\u79cd\u60c5\u51b5\u5bf9\u6211\u4eec\u7684\u5b9e\u9645\u5f71\u54cd\u3002

1.2 spring-security-web

\u8981\u4e3aSpring Security\u589e\u52a0Web\u652f\u6301\uff0c\u9700\u8981\u5f15\u5165spring-security-web\u4f9d\u8d56\uff1a


org.springframework.security
spring-security-web
${org.springframework.security.version}

\u8fd9\u4e2a\u9879\u76ee\u4e3aServlet\u73af\u5883\u5f15\u5165\u4e86\u9488\u5bf9URL\u8bbf\u95ee\u63a7\u5236\u7684\u76f8\u5173\u57fa\u7840\u5b89\u5168\u7ec4\u4ef6\u548c\u8fc7\u6ee4\u5668\u3002

1.3 Spring Security\u4e0e\u8f83\u8001\u7248\u672c\u7684Spring Core\u4e4b\u95f4\u7684\u4f9d\u8d56\u95ee\u9898

\u5982\u4e0a\u6587\u6240\u8ff0\uff0c\u8fd9\u4e2a\u65b0\u7684\u4f9d\u8d56\u4ea7\u751f\u4e00\u4e2aMaven\u4f9d\u8d56\u5173\u7cfb\u95ee\u9898\uff0cSpring Security\u7684\u76f8\u5173jar\u4e0d\u4f9d\u8d56\u4e8e\u6700\u65b0\u7684Spring core\u7684jar \uff08\u800c\u662f\u4ee5\u524d\u7684\u7248\u672c\uff09\u3002\u8fd9\u53ef\u80fd\u4f7f\u7684\u88ab\u4f9d\u8d56\u7684Spring core\u76f8\u5173\u5305\u5728\u7c7b\u8def\u5f84\u4e2d\u88ab\u914d\u7f6e\u524d\u5728\u6700\u65b0\u7684Spring 4.x\u76f8\u5173\u5305\u7684\u524d\u9762\u3002

\u8fd9\u662f\u5982\u4f55\u53d1\u751f\u7684\u5462\uff1f\u6211\u4eec\u9700\u8981\u4e86\u89e3Maven\u5904\u7406\u7248\u672c\u51b2\u7a81\u7684\u673a\u5236\uff0cMaven\u4f1a\u9009\u62e9\u4e0e\u4f9d\u8d56\u6811\u6811\u6839\u6700\u63a5\u8fd1\u7684\u7248\u672c\u3002\u5728\u4e4b\u524d\u7684\u60c5\u51b5\u4e2d\uff0cspring-orm\u4f9d\u8d564.x\u7248\u672c\u7684spring-core\uff0c\u800cspring-security-core\u4f9d\u8d56\u4e8e3.2.8\u7248\u672c\u7684spring-core\u3002\u56e0\u6b64\uff0cspring-orm\u548csprint-security-web\u7684\u5b9a\u4e49\u987a\u5e8f\u5c31\u662f\u4e00\u4e2a\u95ee\u9898\uff0c\u5148\u5b9a\u4e49\u7684\u4f1a\u6709\u66f4\u9ad8\u7684\u4f18\u5148\u7ea7\u3002\u6700\u7ec8\u60c5\u51b5\u5c31\u662f\uff0c\u6211\u4eec\u7684\u7c7b\u8def\u5f84\u4e2d\u4f1a\u6709\u4e24\u4e2a\u7248\u672c\u7684spring-core\u3002

\u4e3a\u4e86\u907f\u514d\u8fd9\u7c7b\u95ee\u9898\uff0c\u6211\u4eec\u9700\u8981\u5728\u6211\u4eec\u7684pom\u6587\u4ef6\u4e2d\u660e\u786e\u6307\u5b9a\u4e00\u4e9bSpring\u4f9d\u8d56\uff0c\u800c\u4e0d\u4f9d\u9760Maven\u9690\u5f0f\u4f9d\u8d56\u673a\u5236\u3002\u6211\u4eec\u5c06\u5728pom\u7684\u6839\u6587\u4ef6\u4e2d\u5b9a\u4e49\u7279\u5b9a\u7684\u4f9d\u8d56\u5173\u7cfb\uff0c\u8fd9\u6837\u8fd9\u4e9b\u4f9d\u8d56\u5173\u7cfb\u5c06\u4f1a\u6709\u66f4\u9ad8\u7684\u4f18\u5148\u7ea7\u3002\u4e0b\u9762\u4f8b\u5b50\u4e2d\uff0c\u5c06\u5bf9\u6240\u6709\u7684Spring\u6838\u5fc3\u7ec4\u4ef6\u660e\u786e\u5b9a\u4e49\u76f8\u540c\u7684\u7248\u672c\uff0c\u5bf9\u4e8e\u591a\u6a21\u5757\u9879\u76ee\uff0c\u9700\u8981\u5728\u7236\u914d\u7f6e\u6587\u4ef6\u7684dependencyManagement\u5c5e\u6027\u4e2d\u5b9a\u4e49\u3002


org.springframework
spring-core
${org.springframework.version}


org.springframework
spring-context
${org.springframework.version}


org.springframework
spring-jdbc
${org.springframework.version}


org.springframework
spring-beans
${org.springframework.version}


org.springframework
spring-aop
${org.springframework.version}


org.springframework
spring-tx
${org.springframework.version}


org.springframework
spring-expression
${org.springframework.version}


org.springframework
spring-web
${org.springframework.version}

1.4 spring-security-config\u53ca\u5176\u4ed6

\u8981\u4f7f\u7528\u4e30\u5bcc\u7684Spring Security XML\u7684\u547d\u540d\u7a7a\u95f4\uff0c\u9700\u8981\u5b9a\u4e49spring-security-config\u4f9d\u8d56\uff1a


org.springframework.security
spring-security-config
${org.springframework.security.version}
runtime

\u6ca1\u6709\u4efb\u4f55\u4ee3\u7801\u9700\u8981\u5728\u7f16\u8bd1\u65f6\u4f9d\u8d56\u8fd9\u4e2a\u5305\uff0c\u6240\u4ee5\u5b83\u7684\u8303\u56f4\u5e94\u8be5\u5b9a\u4e49\u4e3aruntime\u3002

\u6700\u540e\uff0cLDAP\u3001ACL\u3001CAS\u548cOpenID\u652f\u6301\u9700\u8981\u5206\u522b\u589e\u52a0\u5404\u81ea\u7684\u4f9d\u8d56\u5305\uff1aspring-security-ldap, spring-security-acl, spring-security-cas\u548cspring-security-openid\u3002

在Maven中Spring的基础配置

Spring是高度模块化的,可以单独使用Spring的某个库而不需要依赖Spring的其他库。比如,使用Spring Context库不需要依赖Spring Persistence或者Spring MVC库。
让我们先从最简单开始,在Maven中配置spring-context依赖:

<properties> <org.springframework.version>3.2.8.RELEASE</org.springframework.version> <!-- <org.springframework.version>4.0.2.RELEASE</org.springframework.version> --></properties><dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> <scope>runtime</scope></dependency>

上例定义的对spring-context的依赖,spring-context实现了Spring注入容器并且依赖:spring-core,spring-expression,spring-aop以及spring-beans。这些依赖包使容器可以支持Spring的一些核心技术:Spring核心组件,Spring EL表达式 (SpEL), 面向切面编程,JavaBean机制。
注意,在runtime范围定义这个依赖,因此需求确定在编译期间不需要依赖相关Spring特定的API。在一些高级应用场景下,一些Spring依赖项可以不用配置runtime范围,但是在目前比较简单的项目场景下,不需要针对Spring编译项目去获得整个框架的全部功能。
同样要注意的是,从Spring
3.2开始不需要定义CGLIB依赖(目前的版本是CGLIB
3.0)。现在使用内嵌在spring-core JAR(更多详细信息可以查看相关[JIRA]https://jira.springsource.org/browse/SPR-9669("JIRA")中的cglib包(net.sf.cglib现在使用org.springframework.cglib替代)。
在Maven配置Spring持久化框架
现在来看看Spring持久化框架的配置(主要是spring-orm)

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version></dependency>

上面的配置增加了Hibernate和JPA功能支持,比如HibernateTemplate和JpaTemplate以及一些额外的持久化相关的依赖:spring-jdbc和spring-tx
在JDBC数据访问库定义Spring JDBC支持以及JdbcTemplate,Spring-tx提供了非常灵活的事务管理抽象。
在Maven配置Spring MVC
要增加Spring Web和Servlet支持,需要在上面已配置的pom文件中额外增加两个依赖:

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version></dependency>

spring-web包包含Servlet和Portlet所需要通用组件,spring-webmvc则在Servlet环境中启用MVC支持。
由于spring-webmvc依赖于spring-web,所以定义了spring-webmvc依赖后,可以不用显示的在pom定义spring-web。
在Maven中配置Spring Test

可以通过下面的依赖配置将Spring Test引入项目

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope></dependency>

从Spring 3.2开始,Spring MVC Test项目已经被包含到核心的Spring Test框架中(原来是一个独立项目,项目托管在GitHub)。所以,从Spring 3.2开始,仅需要在依赖配置中配置spring-test依赖即可。
注意:对于使用Spring 3.1及以下版本的应用来说,独立的spring-mvc-test依赖还是可以使用的,可以参考这里进行配置。但是,这个依赖已经不再Maven的中央库中,所以如果需要增加依赖需要配置自定义Maven容器。
7. 使用Milestones(里程碑)版本
Spring的最新稳定版本保存在Maven的中央库,如果项目需要使用Spring的里程碑版本,需要在pom中配置自定义容器:

<repositories> <repository> <id>repository.springframework.maven.milestone</id> <name>Spring Framework Maven Milestone Repository</name> <url>http://repo.spring.io/milestone/</url> </repository></repositories>

当容器配置完成后,项目就可以像下面示例一样定义依赖了:

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.2.0.RC2</version></dependency>

8. 使用Snapshots(快照)版本
与里程碑版本一样,快照版本也需要配置自定义容器位置:

<repositories> <repository> <id>repository.springframework.maven.snapshot</id> <name>Spring Framework Maven Snapshot Repository</name> <url>http://repo.spring.io/snapshot/</url> </repository></repositories>

当快照容器位置配置完成后,下面的依赖配置就可以使用了:

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.3.0.BUILD-SNAPSHOT</version></dependency>

对于4.x版本也是一样的:

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.0.3.BUILD-SNAPSHOT</version></dependency>

  • java妗嗘灦瀛︿範鏂瑰紡鏈夊摢浜?
    绛旓細涓夊ぇ妗嗘灦绠浠1銆丼pring Spring 鏄竴涓В鍐充簡璁稿鍦↗2EE 寮鍙戜腑甯歌鐨勯棶棰樼殑寮哄ぇ妗嗘灦. Spring 鎻愪緵浜嗙鐞嗕笟鍔″ 璞$殑涓鑷存柟娉曞苟涓旈紦鍔变簡娉ㄥ叆瀵规帴鍙g紪绋嬭屼笉鏄绫荤紪绋嬬殑鑹ソ涔犳儻.Spring 鐨勬灦鏋勫熀纭鏄 鍩轰簬浣跨敤JavaBean 灞炴х殑Inversion Control瀹瑰櫒.鐒惰,杩欎粎浠呮槸瀹屾暣鍥炬櫙涓殑涓閮 鍒:Spri璺熺潃杩欎釜缃戠珯瀛﹀惂:缃戠珯鍐呭涓板瘜...
  • 扩展阅读:配置maven详细步骤 ... maven配置与安装 ... maven安装及配置教程 ... maven validate ... 怎么配置maven环境 ... maven官网 ... maven mirror ... maven配置settings xml ... 为什么我的maven配置不了 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网