浙江建设集团网站,深圳营销型网站费用,网站建设公司薪酬,临沂企业建站效果好maven安装教程安装教程1.简介 在这篇文章中#xff0c;我们将演示如何针对非常特定的用例对Spring使用Maven依赖项。 我们使用的所有库的最新版本都可以在Maven Central上找到。 对于一个有效的构建周期来说#xff0c;了解Maven依赖项的工作方式以及如何对其进行管理很重要… maven安装教程安装教程 1.简介 在这篇文章中我们将演示如何针对非常特定的用例对Spring使用Maven依赖项。 我们使用的所有库的最新版本都可以在Maven Central上找到。 对于一个有效的构建周期来说了解Maven依赖项的工作方式以及如何对其进行管理很重要并且对于在我们的项目中使用的各种库之间的版本之间应有清晰的定义这很重要。 这是由于我们经常在多个项目中重复一组依赖项的原因。 当我们不明白为什么要使用特定的库版本时我们应该犯错误。 让我们了解不同的Spring Framework依赖关系之间的关系。 2.项目设置 我们将使用许多Maven原型之一为我们的示例创建一个示例项目。 要创建项目请在将用作工作空间的目录中执行以下命令 创建样本项目 mvn archetype:generate -DgroupIdcom.javacodegeeks.example -DartifactIdJCG-SpringMaven-Example -DarchetypeArtifactIdmaven-archetype-quickstart -DinteractiveModefalse 如果您是第一次运行maven则完成生成命令将需要几秒钟因为maven必须下载所有必需的插件和工件才能完成生成任务。 Spring Maven项目设置 注意现在您将在所选目录中拥有一个与artifactId同名的新目录。 现在随时在您喜欢的IDE中打开项目。 同样 仅当我们添加适当的Spring依赖项时才需要该项目来演示制作的各种依赖项树 。 最后我们使用一个简单的maven命令来代替使用IDE来创建该项目。 这有助于我们使项目设置和初始化不受您可能使用的任何特定IDE的影响。 3. Maven的Spring依赖 由于Spring Framework的高度模块化性质添加一个依赖关系不会对另一个依赖关系产生要求。 例如Spring Context依赖不需要任何Spring MVC依赖或Spring数据库。 因此我们将在各自独立的部分中介绍每个依赖项。 要添加Spring Context支持这里是需要的依赖项 Spring语境 propertiesorg.springframework.version5.0.4.RELEASE/org.springframework.version
/properties
dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${org.springframework.version}/versionscoperuntime/scope
/dependency 请注意我们已经使用了发布此文章时发布的最新可用Spring版本。 同样可以在Maven Central上找到我们使用的所有库的最新版本。 要了解添加特定依赖项时添加到项目中的所有依赖项我们可以运行一个简单的Maven命令该命令使我们能够查看项目的完整依赖项树。 这是我们可以用来实现的Maven命令 检查依赖树 mvn dependency:tree 当我们运行此命令时它将向我们显示以下依赖关系树 Spring上下文依赖树 spring-context库将实际的Spring Injection Container引入了项目并需要更多的JAR例如spring-aop spring-beans spring-core spring-expression和spring-jcl 。 当我们运行上面的命令时在向我们展示依赖树之前maven首先再次下载了JAR以确认是否发生了更改。 请注意如果其中一个依赖项需要另一个依赖项才能运行它也会被下载并在上面的依赖项树中显示为该树的子分支。 当某个依赖项将另一个依赖项带入构建系统的依赖项池中时间接依赖项的子分支表示方法将被清除。 最后我们在此处添加的spring-context依赖项是runtime范围 。 这是因为仅在运行时才需要此JAR以仅提供与Spring相关的类并且不直接在项目中使用至少不用于简单项目。 4. Spring Persistence Maven依赖关系 现在让我们看一下Spring Persistence实现所需的核心依赖项 Spring持久性 dependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion${org.springframework.version}/version
/dependency 当我们查看该库的依赖关系树时我们将发现JDBC和Transaction支持也包含在此依赖关系中 Spring持久性依赖树 5. Spring MVC Maven依赖关系 Spring MVC Maven依赖关系是您开始使用Spring处理Web项目时将使用的主要依赖关系。 这是在项目中设置Spring MVC的maven依赖项 SpringMVC dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${org.springframework.version}/version
/dependency 这是Spring Framework Maven依赖项家族中最常用的依赖项之一。 现在让我们看一下spring-web和spring-webmvc库的依赖关系树 Spring MVC依赖树 spring-web库包含Servlet Environment的最常用的Web实用程序。 第二个库spring-webmvc为Servlet环境提供了MVC支持 。 6.通过Maven提供测试支持 测试始终是项目不可或缺的一部分。 在Spring中我们对库也有依赖性我们也可以测试我们的应用程序。 其依赖项定义为 弹簧测试 dependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${org.springframework.version}/version
/dependency 让我们看一下所有库及其依赖树所包含的内容 Spring测试依赖树 即使这是我们现在需要的所有测试依赖项我们也会在这里查看Spring Framework中使用的两个最常用的测试库即JUnit和Mockito 。 7. Spring Security Maven依赖关系 与Spring Security支持相关的Maven依赖关系将在Spring Security with Maven课程中详细讨论。 8.在Maven中使用JUnit 要在基于Spring的项目中添加JUnit依赖项只需添加一个具有test范围的简单依赖项 JUnit的 dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/versionscopetest/scope
/dependency 让我们看一下所有库及其依赖树所包含的内容 JUnit依赖树 JUnit也带来了Hamcrest库。 要在JUnit中使用Hamcrest匹配器我们使用assertThat语句后跟一个或多个匹配器。 要了解Hamcrest中可用的匹配器请阅读Hamcrest匹配器教程 。 9.在Maven中使用Mockito Mockito是使用最广泛的Java测试依赖项之一它还可用于模拟对象及其行为 莫基托 dependencygroupIdorg.mockito/groupIdartifactIdmockito-all/artifactIdversion1.10.19/versionscopetest/scope
/dependency 让我们看一下所有库及其依赖树所包含的内容 Mockito依赖树 10.项目Hello World 正如对Spring MVC的简单演示一样我们将展示如何使用Spring MVC 5制作一个简单的控制器。为此我们使用了在Spring MVC部分中提到的依赖项以及一些Servlet容器依赖项。 这是我们在项目中使用的所有依赖项的列表 pom.xml dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${org.springframework.version}/version
/dependency
dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${org.springframework.version}/version
/dependencydependencygroupIdjavax.servlet/groupIdartifactIdservlet-api/artifactIdversion2.5/versionscopeprovided/scope
/dependency
dependencygroupIdjavax.servlet.jsp/groupIdartifactIdjsp-api/artifactIdversion2.1/versionscopeprovided/scope
/dependency
dependencygroupIdjavax.servlet/groupIdartifactIdjstl/artifactIdversion1.2/version
/dependency 要在项目中配置前端Controller我们将对AbstractAnnotationConfigDispatcherServletInitializer类进行子类化 AppConfig.java package com.javacodegeeks.example.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class AppConfig extends AbstractAnnotationConfigDispatcherServletInitializer {protected Class?[] getRootConfigClasses() {return new Class[] { RootConfig.class };}protected Class?[] getServletConfigClasses() {return new Class[] { WebMvcConfig.class };}protected String[] getServletMappings() {return new String[] { / };}
} 现在我们需要创建一个Root配置类该类将是空的因为我们目前尚未在项目中配置任何bean RootConfig.java package com.javacodegeeks.example.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;Configuration
ComponentScan(basePackages { com.javacodegeeks.example.* })
public class RootConfig {
} 为了使该项目成为MVC项目我们需要制作一个WebMvcConfigurer类该类也使用EnableWebMvc注释对其进行标记。 这启用了项目的MVC性质 WebMvcConfig.java package com.javacodegeeks.example.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration
EnableWebMvc
ComponentScan(basePackages { com.javacodegeeks.example.* })
public class WebMvcConfig implements WebMvcConfigurer {
} 准备好项目的配置后我们现在可以添加Controller作为最后一步。 为了演示我们将制作一个简单的GET API该API仅将String返回为“ Hello World” HomeController.java package com.javacodegeeks.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;Controller
public class HomeController {GetMapping(/hello)ResponseBodypublic String helloWorld() {return Hello World;}
} 当我们运行该项目时我们将在浏览器中看到一条简单的消息。 打开我们配置的URL它是 网址 localhost:8080/hello 我们将看到以下输出 SpringMVC Hello World 有关为何需要配置类的详细说明请阅读Spring MVC Tutorial 。 11.结论 在这篇文章中我们讨论了与Spring框架相关的各种Maven依赖关系这使每个依赖关系的模块化以及它们之间如何相互独立的事情变得更加清晰。 本课是了解所需依赖项的绝佳起点。 我们还研究了Spring Framework依赖关系的几个部分以及JUNit和Mockito的依赖关系即使它们不是Spring Framework本身的一部分但经常与基于Spring的项目一起使用以为Spring Framework的各个层提供广泛的测试支持。 最后我们学习了如何使用简单的maven命令显示项目的依赖关系树并观察项目的哪些依赖关系还取决于其他哪些依赖关系。 在此处阅读有关Spring Framework的更多课程。 12.下载源代码 本课说明了如何使用Spring框架的Maven依赖关系以及如何通过将依赖关系保持独立和模块化来呈现特定的用例。 下载 您可以在此处下载此示例的完整源代码 JCG-SpringMaven-Example 翻译自: https://www.javacodegeeks.com/2018/04/spring-with-maven-tutorial.htmlmaven安装教程安装教程