名称 | 作用 |
---|---|
spring-core-x.x.xx.RELEASE.jar | 包含 Spring 框架基本的核心工具类,Spring 其他组件都要用到这个包中的类,是其他组件的基本核心。 |
spring-beans-x.x.xx.RELEASE.jar | 所有应用都要用到的,它包含访问配置文件、创建和管理 Bean 以及进行 Inversion of Control(IoC)或者 Dependency Injection(DI)操作相关的所有类。 |
spring-context-x.x.xx.RELEASE.jar | Spring 提供在基础 IoC 功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI 定位、EJB 集成、远程访问、缓存以及各种视图层框架的封装等 |
spring-expression-x.x.xx.RELEASE.jar | 定义了 Spring 的表达式语言。 需要注意的是,在使用 Spring 开发时,除了 Spring 自带的 JAR 包以外,还需要一个第三方 JAR 包 commons.logging 处理日志信息 |
使用 Spring 框架时,只需将 Spring 的 4 个基础包以及 commons-logging-1.2.jar 包复制到项目的 lib 目录,并发布到类路径中即可。
使用两种方法来创建Spring项目
我在看教程的过程中,发现有的教程是使用自己导入Spring包的方式,有的是使用Maven的方式来导入Spring包的,因此为了文章的完备性,本文也会使用这两种方法来分别创建Spring项目。
对Maven不了解的,可看这篇博客:maven引入依赖包,import依赖包,编译运行maven项目.
1.1使用IDEA新建一个普通项目
新建好之后,项目目录结构如下:
1.2导入Spring包
因为我们的项目要使用这些包,因此要将其导入。
在项目名上右键,选择Open Module Settings
选择Libraries
点击+号,新建Java
使用 Spring 框架时,只需将 Spring 的 4 个基础包以及 commons-logging-1.2.jar 包复制到项目的 lib 目录,并发布到类路径中即可。
如下图所示,将这5个包添加进来即可。
先点击Apply,再点击OK即可。
1.3新建两个java文件用来测试
新建两个文件MainApp.java和HelloWorld.java。文件内容如下
MainApp.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(“Beans.xml”);
HelloWorld obj = (HelloWorld) context.getBean(“helloWorld”);
obj.getMessage();
}
}
HelloWorld.java
public class HelloWorld {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void getMessage() {
System.out.println("message : " + message);
}
}
此时,项目目录结构如下:
1.4创建Spring配置文件
为啥要创建这个配置文件,要理解这个问题,需要对Spring框架有一些了解。
我们需要创建一个配置文件 Beans.xml 。文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>此时项目的目录结构如下:
1.5 Project Structure设置
首先我们可以先看下这篇博客来了解一下IDEA中Project Structure设置:玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定
点击File-Project Structure,注意设置一下Source文件路径设置,以及Excluded的路径设置。
在上面的页面,点击Facets
继续点击+号,新增一下 Beams.xml
1.6注意看一下iml配置文件
我之前按照上面步骤配置的时候,发现会报错,后面发现是iml配置文件中
有关iml配置文件的了解可以看下面两篇博客:
我的iml配置文件中的内容如下:
<?xml version="1.0" encoding="UTF-8"?> file://$MODULE_DIR$/Beans.xml我们可以解析一下这个配置文件:
file://$MODULE_DIR$/Beans.xml这边的配置就是Spring框架的配置
file://
M
O
D
U
L
E
D
I
R
MODULE_DIR
MODULEDIR/Beans.xml,这边的设置就是Spring的配置文件的路径。
上面 设置是整个项目的文件结构,源文件的路径。
上面这些则是Spring框架的jar包。
一般如果我们配置正常的话,我们其实是可以不用管iml配置文件的。如果不能正常运行,那我们可能就要检查一下。
1.7看是否能否正常运行
如上图所示,则是运行成功了!
1.8可能会出现的问题
我在此过程中,出现过下面几种错误。
运行之后,报错信息如下:
Exception in thread “main” org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [Beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:195)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:257)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:128)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:638)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:523)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:144)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:85)
at MainApp.main(MainApp.java:8)
Caused by: java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:333)
… 13 more
Process finished with exit code 1
另一种报错信息如下:
JAVA错误: 找不到或无法加载主类
上面这两种错误的主要原因就是Beams.xml和源文件的路径问题。
为了解决上面两个问题,我们只需要仔细查看1.5节和1.6节中的设置问题。
上面讲解了使用最通用的方法,下面我们继续讲解使用Maven来建立这个项目。
2.1新建一个Maven项目
此时项目的目录结构如下:
2.2使用Maven配置文件导入Spring包
只需要在pom.xml中添加依赖即可,我们需要在pom.xml中添加如下内容:
org.springframework spring-context 5.2.9.RELEASE org.springframework spring-core 5.2.9.RELEASE org.springframework spring-beans 5.2.9.RELEASE commons-logging commons-logging 1.2不同版本的jar包可以在这个网址查询:https://mvnrepository.com/search?q=
2.3新建两个java文件用来测试
这两个文件和第一种方法中的文件内容一样。创建完之后,项目目录结构如下:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-LKAm4oeR-1712877872765)]
[外链图片转存中…(img-mZhJupdh-1712877872765)]
[外链图片转存中…(img-EoaCOTn7-1712877872766)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-TaHnGCFI-1712877872766)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!