搭建Spring开发环境+Spring常用注解介绍+SpringMVC请求流程!

搭建Spring开发环境

在以前的项目开发中要使用Spring框架,需要开发者从官网下载所需版本的Spring jar包到本地项目中,然后再构建依赖,并且后续每新建一个项目都需要复制一份依赖到新项目中,然后再开始进行项目开发。自从Maven出现后,这种情况发生了改变,开发者只需要添加Spring依赖坐标就能自动下载所需要的jar包到项目中,改变了以前手动复制jar的过程,提高了开发效率。

Maven的优势和标准目录结构

Maven是一个跨平台地进行项目管理和构建综合工具,能让开发者更方便地管理和构建项目。Maven的最大特色是管理项目依赖,添加依赖后,它能够自动从中央仓库下载项目需要的jar包,从而构建项目依赖的jar包。Maven可以自动完成项目基础构建的管理,它使用的是标准的目录结构和默认的构建生命周期。当有多个开发者协作开发时,Maven可以设置按照约定快速完成项目的配置工作。

使用Maven进行项目开发有4个优点:

对依赖项目的所有jar包可以统一管理,包括jar包的位置和版本的管理。

快速构建项目,Web项目能够打成war包或jar包,只需要添加依赖的坐标就能自动构建项目。

Maven是纯Java开发,支持跨平台。

提高了开发效率,能够自动构建和测试项目。

使用Maven开发项目约定了一个标准目录结构,即约定优于配置的原则。

标准的Maven目录结构如图1.2所示。

图1.2 Maven项目结构

其中,项目名为springdemo,src是存放源码的目录,Java源代码文件存放在src/main/java下,项目配置文件存放在src/main/resources下,Java单元测试文件存放在test/java下,项目的所有依赖都存放在pom.xml文件中,编译后的文件存放在target目录下。当使用Maven进行开发时,按照以上约定,相应的文件可以放置在相应的位置也可以放在其他目录下。当放在其他目录下时需要配置说明。按照约定俗成的习惯来开发,这就是约定优于配置的原则。

说明:在创建项目中的类和配置文件时,如无特殊说明,都是按照上述标准目录来存放的。

在Maven的使用过程中有两个ID非常重要,分别是groupId和artifactId,它们表示jar的组织ID和名字ID。

groupId是组织域名的倒写。例如,百度的域名为baidu.com,在开发过程中groupId为com.baidu。

artifactId是项目名称。例如,本项目是用于用户服务的,artifactId就可以设置为user-service。

项目开发中会涉及版本的迭代,如果一个jar的groupId和artifactId一样,但是版本(version)不同,那么它们就是不同的jar。世界上众多依赖Maven构建的项目就是使用groupId、artifactId和version来决定jar的唯一性,这三者组成了一个Maven坐标。常见的Maven坐标的配置文件如下(外层包裹dependency标签):

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>5.3.8</version>

</dependency>

在开发时如果需要添加相关的依赖,只需要确定groupId、artifactId和version,Maven会自动从中央仓库中把所需的jar包下载到本地。例如当进行Spring开发时,需要把Spring的core包引入项目中,只要在pom.xml中添加spring-core 5.3.8版本的依赖,即可自动完成jar的下载和构建。

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>5.3.8</version>

</dependency

 Maven的下载和安装

本书使用的Maven版本是3.5.2,请读者自行将Maven(二进制源的压缩包)下载到本地。该版本的Maven需要的JDK版本是1.8+,建议读者安装完JDK后再安装Maven。下载后的Maven需要配置环境变量。

(1)把下载的Maven压缩包解压到目录D:\soft下。

(2)配置Window环境变量,在Path变量中添加D:\soft\apache-maven-3.5.2\bin完成Maven环境变量的配置。

(3)配置完成后,在控制台上使用mvn -v命令验证本地的Maven是否配置成功,如果显示如图1.3所示的提示,则表示Maven已经配置成功了。

图1.3 Maven安装命令验证

mvn -v是查看Maven版本的命令,Maven的使用依赖于各种命令,表1.1列举了开发中常用的Maven命令,这些命令还可以组合使用。例如,清理编译后的文件再打包项目,可以使用命令mvn clean package。

因为从国外的Maven中央仓库下载jar包速度较慢,为了在开发中更快地下载所需的jar包,建议读者在配置完成Maven之后再配置国内的Maven仓库镜像。本书推荐使用华为云的Maven仓库或阿里云的Maven仓库,方法如下:

(1)打开Maven安装目录下的conf目录,使用文本编辑工具打开settings.xml文件。

(2)在mirrors节点下配置仓库的地址。下面是华为云和阿里云的仓库地址,读者可任选其一完成配置。

<mirrors>

<!-- 阿里云的仓库地址-->

<mirror>

<id>aliyunmaven</id>

<mirrorOf>*</mirrorOf>

<name>阿里云公共仓库</name>

<url>https://maven.aliyun.com/repository/public</url>

</mirror>

<!-- 华为云的仓库地址-->

<mirror>

<id>huaweicloud</id>

<mirrorOf>*</mirrorOf>

<name>华为云公共仓库</name>

<url>https://mirrors.huaweicloud.com/repository/maven/</url>

</mirror>

</mirrors>

总体来说,Maven起到了简化开发和标准化项目开发的作用,实现了企业项目的轻松构建。Maven的安装是下一步操作的基础,请读者务必安装。

搭建Eclipse开发环境

当使用Java进行项目开发时,估计读者想到的第一个IDE是Eclipse(使用IDEA的请跳转到下一小节)。请读者自行从Eclipse的官网下载并安装Eclipse,具体步骤不再赘述。本小节使用的Eclipse版本是Version:2020-09 (4.17.0)。

将下载文件解压后,打开eclipse.exe即可启动Eclipse。Eclipse启动后,配置Eclipse工作空间的编码为UTF-8,配置步骤如图1.4所示,本地Maven目录和配置文件的位置,如图1.5所示。

图1.4 Eclipse的编码设置

图1.5 Eclipse的Maven的配置

最后单击Apply and Close按钮即完成Eclipse的配置。下面简单介绍如何使用Eclipse。

使用Eclipse新建一个Maven项目。选择File | new Project | MavenProject命令,弹出New Project对话框,如图1.6所示。单击Next按钮,在弹出的对话框中选择创建一个简单的项目,然后设定group id和artifact id分别为com.onyx和spring-demo,最后单击Finish按钮完成项目的创建。

图1.6 使用Eclipse新建Maven项目

最终创建完成的项目目录如图1.7所示。下一步就是在pom.xml中添加依赖,正式开始项目开发。

图1.7 Eclipse中的Maven项目目录

 搭建IntelliJ IDEA开发环境

在Java的企业级开发中,常用的IDE还有IDEA。本书使用的IntelliJIDEA的版本为IntelliJ IDEA 2018.3.6,请读者自行下载安装。安装完成后必须先进行配置。打开IntelliJ IDEA,选择File | Settings命令,弹出配置页面,在其中配置本地Maven,设置Maven的所在目录和配置文件位置,如图1.8所示。

图1.8 IntelliJ IDEA Maven设置

注意:User settings file选项配置的是conf下的settings.xml。Localrepository选项可选择本地仓库,也可以新建一个目录。

完成IntelliJ IDEA的Maven设置后,和Eclipse一样新建一个Maven项目,选择File | new Project命令,在弹出的对话框中选择使用Maven作为构建工具,然后单击Next按钮弹出项目名称对话框,在其中设定groupId和artifactId分别为com.onyx和spring-demo,然后单击Finish按钮。创建完成后的目录结构和Eclipse类似,如图1.9所示,IDEA和Eclip都实现了Maven的约定,不同的工具创建出来的Maven目录结构均一致。

图1.9 IntelliJ IDEA的Maven项目结构

至此完成了IDEA项目的创建。在项目开发中建议使用IDEA,这样会帮助开发者节省大量的构建时间,而且可以避免一些奇怪的项目构建问题。

实战:第一个Hello World项目

本书中的所有代码都使用IntelliJ IDEA完成,具体步骤如下:

(1)打开IntelliJ IDEA新建一个项目。选择File | new Project命令,在弹出的对话框中,选择Maven选项,然后单击Next按钮,在进入的对话框中输入groupId和artifactId作为com.onyx和springdemo,然后单击Finish按钮,创建第一个Hello Word项目springdemo。

(2)在pom.xml中添加spring-context依赖,代码如下:

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.2.9.RELEASE</version>

</dependency>

</dependencies

(3)在src/main/java下新建包com.onyx,再新建一个HelloWorld类,使用注解@Value获取配置文件application.properties(后面创建)中的值,格式为${user.name},其中user.name为配置的名字。代码如下:

package com.onyx;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.context.annotation.Configuration;

@Configuration //标明是一个配置类

public class HelloWorld {

//通过@Value注解,把配置文件中的user.name注入当前类中

@Value("${user.name}")

private String name;

public void setName(String name) {

this.name = name;

}

public HelloWorld() {

System.out.println("初始化构造器");

}

public void hello() {

System.out.println("Hello: " + name);

}

}

(4)本书不使用传统的XML配置方式,而是尽量使用注解的形式配置项目,Spring Boot的官方团队也推荐在开发中使用注解的形式进行配置,Hello World项目也是如此。在resources目录下新建Spring Boot的默认配置文件application.properties,在其中新建配置如下:

#设置用户的名字为CC

user.name=CC

(5)在包com.onyx下新建一个测试类Demo,代码如下:

package com.onyx;

import org.springframework.context.annotation.AnnotationConfig

ApplicationContext;

public class Demo {

public static void main(String[] args) {

//使用配置文件初始化一个Spring的IoC容器

AnnotationConfigApplicationContext context = new

AnnotationConfig

ApplicationContext(HelloWorld.class);

//根据HelloWord的类找到Bean实例

HelloWorld bean = context.getBean(HelloWorld.class);

//调用Bean的方法,验证注入属性是否成功

bean.hello();

}

}

(6)运行Demo中的main()函数就可以看到控制台打印的结果,如图1.10所示。

图1.10 Hello World运行结果

图1.10展示了在Spring中如何获取Bean。默认情况下,Spring会把类名的首字母变成小写后作为当前注入的Bean的名字,因此当前Bean的名字应该是helloWorld。使用Bean的名字从Spring容器中获取Bean,调用hello()方法,结果如图1.11所示。读者可以更改代码中的main()函数进行测试。

图1.11 根据名字获取Bean

通过上面的Hello World项目,我们已经完成了Spring的入门体验,实现了从Spring Ioc容器中获取一个Bean、然后调用Bean的方法。此Bean和newHelloWorld()产生的对象不同,此Bean是Spring增强后产生的代理对象,是受Spring管理的对象。

Spring常用注解介绍

Spring开发团队为开发者定义了很多注解,这些注解代表Spring的配置,在项目开发过程中可以根据实际需求进行配置。如表1.2所示为Spring常用注解配置。

下面介绍Spring业务开发中常用的注解,它们用来注入业务类或标记业务方法,如表1.3所示。

简析Spring MVC的请求流程

Spring MVC是Spring框架的扩展,主要用于Web开发。Spring MVC通过Model- View-Controller模式将数据、业务与效果展示进行分离,其核心是围绕DispatcherServlet类展开的。DispatcherServlet类负责将请求分配给对应的Handler进行处理,然后将数据返回给指定的视图,完成整个请求过程。Spring MVC的请求流程如图1.12所示。

根据图1.12所示,Spring MVC的请求流程如下:

(1)用户向前端控制器(DispatcherServlet)发起请求,该控制器会过滤不能访问的用户请求。

(2)前端控制器通过处理器映射器将URL匹配到相应的Controller映射的组件上,即返回处理器(Handler)。

(3)返回处理器之前处理设置的拦截器。

(4)DispatcherServlet收到返回的处理器后,通过处理适配器(HandlerAdapter)来访问处理器,并处理用户请求。

(5)执行处理器将ModelAndView对象作为结果返回给HandlerAdapter。

(6)通过HandlerAdapter将ModelAndView对象返回给前端控制器。

(7)前端控制器请求视图解析器(ViewResolver)进行视图解析,根据逻辑视图名解析为真正的视图(JSP、Freemaker、HTML),即根据ModelAndView对象中存放的视图名称进行查找,找到对应的页面后形成视图对象。

(8)将视图对象返回给前端控制器。

(9)视图渲染,将ModelAndView对象中的数据放入Request域中,让页面渲染数据。

(10)将渲染数据后的视图返回给用户,完成整个请求。

目前,Spring官方不建议搭建Spring MVC进行演示,开发人员可以直接使用Spring Boot,第2章我们将会进行Spring MVC的功能演示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值