创建Maven Spring MVC项目
明明不是开发,却在不断接触开发相关的东西。最近做测试接触的测试框架,用得差不多以后就想自己也能搭一个。然后就重拾一下大学里接触到的知识好了。
Step1 简单了解下Spring
Spring是个轻量级的框架,多轻不知道,不过还挺好上手的。
1、核心思想是DI(Dependency Injection,即依赖注入)和IoC(Inversion of Control,即控制反转)
2、 AOP面向切面编程
依赖注入(DI):
Spring最有确定的技术是依赖注入控制反转(DI)。控制反转(IoC)是一个笼统的概念,它可以表现在许多不同的方式和依赖注入仅仅是控制反转的一个具体的例子。
当编写一个复杂的Java应用程序,应用程序类应该尽可能独立其他Java类来增加重复使用这些类,并独立于其他类别的测试它们,而这样做单元测试的可能性。依赖注入有助于粘合这些类在一起,同时保持他们的独立。
什么是依赖注入是什么呢?让我们来看看这两个词分开。这里的依赖性部分转化为两个类之间的关联。例如,A类是依赖B类,现在,让我们来看看第二部分,注入。这一切都意味着,B类将由IOC注入到A类得到。
依赖注入可以将参数传递给构造函数的方式或使用后建设setter方法发生。依赖注入是Spring框架的核心,所以会在一个单独的章节,一个不错的例子解释这个概念。
面向切面编程(AOP):
Spring的一个关键组件是面向切面编程(AOP)框架。跨越多个点的应用程序的功能被称为横切关注点和这些横切关注点是从应用程序的业务逻辑概念上区分开来。有方面的各种常见很好的例子包括日志记录,声明性事务,安全性和高速缓存等。
模块化的OOP关键单元是类,而在AOP中模块化的单元则是切面。DI帮助您从彼此分离的应用程序对象,AOP可以帮助你消除来自他们影响的对象横切关注点。
[摘自:使用Java的Spring框架编写第一个程序Hellow world]
我对这两个概念还不是很熟悉,但是不打算特意去看文献,慢慢在使用中理解吧。
Step2 搭建我的第一个Spring项目
1、新建一个空的工程,选择工程存储地址及工程名
2、选择Module
创建一个maven项目:File-->new-->module..,选择maven项目,在created from archetype中选择maven-archetype-webapp。
备注:Maven-Archetype,用于生成项目骨架。
3、设置GroupId和ArtifactId,如下图
4、然后finish,创建项目完成。
5、给项目添加Spring框架
project-->add framework support,选择spring ,勾选Create empty spring-config.xml,如果有本地Maven库的话,选择Set up library later,没有可以选择Download。
方法二 :我第一次在idea在添加framework support时,没有添加sprint框架的这个选项。所以我转换思路,直接在maven中添加spring的依赖。
在pom.xml文件中添加spring配置如下:
<properties>
<java.version>1.8</java.version>
<org.springframework.version>4.3.10.RELEASE</org.springframework.version>
<!-- <org.springframework.version>4.0.2.RELEASE</org.springframework.version> -->
</properties>
<!--将Spring WebMVC引入项目-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.5.RELEASE</version>
</dependency>
<!--将Spring Test引入项目-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
配置后,点击从maven更新包,idea就会从maven库或者本地maven仓库下载需要的包,External Libraries文件夹下就出现引用的包了。
6、在main目录下新建java目录,并在Preject Structure中设置java文件夹的目录类型为Sources,如下图:
在idea中需要对目录进行标注
- Sources 一般用于标注类似 src 这种可编译目录。有时候我们不单单项目的 src 目录要可编译,还有其他一些特别的目录也许我们也要作为可编译的目录,就需要对该目录进行此标注。只有 Sources 这种可编译目录才可以新建 Java 类和包,这一点需要牢记。
- Tests 一般用于标注可编译的单元测试目录。在规范的 maven 项目结构中,顶级目录是 src,maven 的 src 我们是不会设置为 Sources 的,而是在其子目录 main 目录下的 java 目录,我们会设置为 Sources。而单元测试的目录是 src - test - java,这里的 java 目录我们就会设置为 Tests,表示该目录是作为可编译的单元测试目录。一般这个和后面几个我们都是在 maven 项目下进行配置的,但是我这里还是会先说说。从这一点我们也可以看出 IntelliJ IDEA 对 maven 项目的支持是比较彻底的。
- Resources 一般用于标注资源文件目录。在 maven 项目下,资源目录是单独划分出来的,其目录为:src - main -resources,这里的 resources 目录我们就会设置为 Resources,表示该目录是作为资源目录。资源目录下的文件是会被编译到输出目录下的。
- Test Resources 一般用于标注单元测试的资源文件目录。在 maven 项目下,单元测试的资源目录是单独划分出来的,其目录为:src - test -resources,这里的 resources 目录我们就会设置为 Test Resources,表示该目录是作为单元测试的资源目录。资源目录下的文件是会被编译到输出目录下的。
- Excluded 一般用于标注排除目录。被排除的目录不会被 IntelliJ IDEA 创建索引,相当于被 IntelliJ IDEA 废弃,该目录下的代码文件是不具备代码检查和智能提示等常规代码功能。
通过上面的介绍,我们知道对于非 maven 项目我们只要会设置 src 即可。
7、新建项目的目录结构如下
image.png