热门标签 | 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();
}
}

程序输出

在这里插入图片描述


推荐阅读
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 本文介绍了如何使用 Spring Boot DevTools 实现应用程序在开发过程中自动重启。这一特性显著提高了开发效率,特别是在集成开发环境(IDE)中工作时,能够提供快速的反馈循环。默认情况下,DevTools 会监控类路径上的文件变化,并根据需要触发应用重启。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
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社区 版权所有