热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

IntellijIDEA配置Maven&快速搭建Spring环境

目录

目录

    • 一、Maven的安装和配置
    • 二、Spring框架的概念
    • 三、快速搭建Spring项目

一、Maven的安装和配置

1.下载安装Maven
虽然Intellij IDEA已经包含了Maven插件,但最好还是能够安装自己的Maven插件,方便以后配置使用。可以通过Maven的官网http://maven.apache.org/download.cgi下载最新版的Maven。
Maven下载后解压即可。如解压到D盘,然后将Maven的安装路径D:\apache-maven-3.5.0\bin加入到环境变量path中。然后通过在命令行窗口执行命令:mvn -v,验证是否安装成功。

在这里插入图片描述

2.配置Intellij IDEA中的Maven
第1步:打开idea,点击Configure,打开settings。

在这里插入图片描述
第2步:搜索框搜索maven,找到maven相关配置。在Maven home directory中选择Maven的安装路径,勾上User settings file和Local repository后面的override,并选择Maven的配置文件和仓库的位置。

在这里插入图片描述
第3步:点击Runner,在VM Options中配置 -DarchetypeCatalog=internal

在这里插入图片描述
ps:指定-DarchetypeCatalog为internal的目的是为了可使用maven默认的archetype-catalog.xml,而不用再remote下载。Intellij根据maven archetype的本质,执行mvn archetype:generate命令。该命令执行时,需要指定一个archetype-catalog.xml文件。该命令-DarchetypeCatalog可选值为:remote,internal,local等,用来指定archetype-catalog.xml文件从哪里获取,默认为remote。即从http://repo1.maven.org/maven2/archetype-catalog.xml 路径下载文件,这个文件约为3-6M,下载速度很慢,导致网络延时,所以加载jar慢。

解决导入jar包慢问题的方法可参考IntelliJ IDEA创建Maven项目导入jar包速度慢的三种解决方法

二、Spring框架的概念

spring 是众多开源 java 项目中的一员,基于分层的 javaEE 应用一站式轻量
级开源框架,主要核心是 Ioc(控制反转/依赖注入) 与 Aop(面向切面)两大技
术,实现项目在开发过程中的轻松解耦,提高项目的开发效率。

spring的优势:

  1. 降低组件之间的耦合度,实现软件各层之间的解耦。
  2. 可以使用容器提供的众多服务,如:事务管理服务、消息服务等等。
  3. 当我们使用容器管理事务时,开发人员就不再需要手工控制事务.也不需处理复杂的事务传播。
  4. 容器提供单例模式支持,开发人员不再需要自己编写实现代码。
  5. 容器提供了 AOP 技术,利用它很容易实现如权限拦截、运行期监控等功能。
  6. 方便程序的测试。可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
  7. 方便集成各种优秀框架(Structs、Hibernate、Hessian、Quartz等)的支持。
  8. 降低JavaEE API的使用难度。Spring对JavaEE API(如JDBC、JavaMail、远程调用等)进行了薄薄的封装,是这些API的使用难度降低。

spring源码架构及体系结构:
Spring 总共大约有 20 个模块, 由 1300 多个不同的文件构成。 而这些组件被分别整合在核心容器(Core Container) 、 Aop(Aspect OrientedProgramming) 和设备支持(Instrmentation) 、 数据访问及集成(DataAccess/Integeration) 、Web、 报文发送(Messaging) 、 测试 6 个模块集合中。
在这里插入图片描述
1.数据库访问/集成(DataAccess/Integration)

  • JDBC模块:提供了一个JDBC 的样例模板,使用这些模板能抵消传统冗长的JDBC编码和必须的事务控制,而且还能享受到Spring管理事务的好处。
  • ORM模块:提供与流行的“对象/关系”映射框架的无缝集成,包括Hibernate、JPA、Ibatis等,而且可以使用Spring事务管理,无需额外控制事务。
  • OXM模块:提供了一个Object/XML映射实现,将Java对象映射成XML数据,或者将XML数据映射成Java对象,Object/MXL映射实现包括JAXB、Castor、XMLBeans和XStream等。
  • JMS模块:提供一套“消息生产者、消息消费者”模块,使之更加简单地使用JMS,JMS用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
  • Transactions模块:该模块用于Spring管理事务,只要是Spring管理对象都能得到Spring管理事务的好处,无需在代码中进行事务的控制了,而且支持编程和声明性的事务管理。

2.Web层

  • WebSocket模块:提供WebSocket功能。
  • Servlet模块:提供了一个Spring MVC Web框架实现。Spring MVC框架提供了基于注解的请求资源注入,更简单的数据绑定、数据验证等及一套非常易用的JSP标签,完全无缝与Spring其它技术协作。
  • Web模块:提供了基础的Web功能。例如:多文件上传、并提供一个RestTemplate类来进行方便的Restful Services访问。
  • Portlet模块:提供Portlet环境支持。

3.AOP、Aspects

  • AOP:提供了符合AOP Alliance规范的面向切面的编程(aspect-oriented programming)实现,提供比如日志记录、权限控制、性能统计等通用功能和业务逻辑分离的技术,并且能动态地把这些功能添加到需要的代码中,这样各司其职,降低业务逻辑和通用功能的耦合。
  • Aspects:提供了对AspectJ的集成,AspectJ提供了比Spring ASP更强大的功能。

4.Core Container(核心容器)

  • Spring-Beans:提供了框架的基础部分,包括控制反转和依赖注入。其中Bean Factory是容器的核心,本质是“工厂设计模式”的实现,而且无需编程实现“单例设计模式”,单例完全由容器控制,而且提倡面向接口的编程,而非面向实现编程。所有应用程序对象及对象间关系由框架管理,从而真正从程序逻辑中,把维护对象之间的依赖关系提取出来,所有这些依赖关系都由Bean Factory来维护。
  • Spring-Core:以Core和Beans为基础,集成Beans模块功能并添加资源绑定、数据验证、国际化、Java EE支持、容器声明周期、事件传播等。核心接口是ApplicationContext。
  • Spring-SpEL:提供强大的表达式语言支持,支持访问和修改属性、方法调用;支持访问及修改数组、容器和索引器,命名变量,支持算数和逻辑运算,支持从Spring容器获取Bean,还支持列表投影、选择和一般的列表聚合等。

5.Test

  • Test模块:Spring支持Junit和TestNG测试框架,而且还额外提供了一些基于Spring的测试功能,比如在测试Web框架时,模拟HTTP请求的功能。

三、快速搭建Spring项目

1.新建工程项目,在新建窗口选择Maven,勾选Create from archetype,选择maven-archetype-webapp。

在这里插入图片描述
2.填写GroupID和ArtifactID。
GroupId和ArtifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
比如我创建一个项目,我一般会将GroupId设置为com.szly,com表示域名,szly一般代表公司的名称,ArtifactId设置为spring-ioc,表示你这个项目的名称是spring-ioc,依照这个设置,在你创建Maven工程后,新建包的时候,包结构最好是com.szly.spring-ioc打头的。

在这里插入图片描述
3.如果我们配置了一中的第2步,那么会发现在Maven home directory、User settings file和Local repository已经配置好了;如果没有配置的话,再手动进行配置一下。另外,如果配置了一中的第3步,就不需要配置Add Maven Property中的name和value了;同样,如果没有配置的话,就在Properties属性列表中添加属性名name:archetypeCatalog,value:internal。

在这里插入图片描述
4.填写项目名称,finish。

在这里插入图片描述
在这里插入图片描述

5.在/src/main目录下创建java和resources目录,分别标记为Sources和Resources文件。至此,一个完整的web项目创建完成。

在这里插入图片描述
在这里插入图片描述
快速使用:
1.在porm.xml中导入坐标

在这里插入图片描述
2.创建Bean
包结构如下

在这里插入图片描述

package com.szly.dao;
public interface UserDao {
public void save();
}

package com.szly.dao.impl;
import com.szly.dao.UserDao;
public class UserDaoImpl implements UserDao {
@Override
public void save() {
System.out.println("save running...");
}
}

3.在resources文件夹下创建配置文件applicationContext.xml,配置bean


<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="userDao" class="com.szly.dao.impl.UserDaoImpl">bean>
beans>

4.创建ApplicationContext对象

package com.szly.demo;
import com.szly.dao.UserDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserDaoDemo {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.save();
}
}

程序输出

在这里插入图片描述


推荐阅读
  • 本文介绍了在go语言中利用(*interface{})(nil)传递参数类型的原理及应用。通过分析Martini框架中的injector类型的声明,解释了values映射表的作用以及parent Injector的含义。同时,讨论了该技术在实际开发中的应用场景。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之六 || API项目整体搭建 6.1 仓储模式
    代码已上传Github+Gitee,文末有地址  书接上文:前几回文章中,我们花了三天的时间简单了解了下接口文档Swagger框架,已经完全解放了我们的以前的Word说明文档,并且可以在线进行调 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
author-avatar
shilohqiu_144
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有