Spring初体验
相信很多学习java的小伙伴肯定会接触到Spring吧,作为一个已经在工作的小白,为了之前工作呀,就很快的学习了SSM框架与springboot框架,但是现在的问题就是,好多东西自己不是很理解,也有好多东西也遗忘了,所以自己想利用业余时间来重新学习。
开发环境
- idea 2019.3
- Tomcat9
谈谈Spring
Spring,这个框架,适用于企业级开发。不对,应该说为了企业级开发而产生的。不知道说的对不对,这都不重要,Spring就是为了解决逻辑层和其他各层的耦合问题。Spring可以集成许多模块,例如下图。
备注:图片来源网络
也就是核心容器,数据访问/集成,web层,AOP(面向切面编程),Instrumentation(植入),Message(消息)
具体每个模块,这里便不多做介绍,但是这里我们需要值得注意的是,核心容器是其他模块建立的基础,核心模块有Spring-core,Spring-beans,Spring-context,Spring-context-support和Spring-expression等模块构成。
- Spring-core:提供了框架的基本组成部分,例如IOC与依赖注入。
- Spring-beans:提供了BeanFactory。
- Spring-context:提供了框架式的对象访问方式。
- Spring-context-support:支持整合第三方库到Spring应用程序上下文。
- Spring-expression:提供了强大的表达式语言去支持运行时查询和操作对象图。
构建项目
首先构建一个普通的maven项目
我什么都没有勾选,直接下一步
这里我采用父子工程的方式进行学习,删掉了父工程的src与.idea,导入pom依赖,上面介绍了构建spring的核心模块,故肯定需要导入。
我的依赖如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.wang</groupId>
<artifactId>spring</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>spring-ioc</module>
</modules>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
然后我创建了子模块,也是一个普通的maven项目,两个项目创建好后,目录结构如下:
之后就是为子模块配Tomcat服务器啦,提前去官网下载Tomcathttps://tomcat.apache.org/download-90.cgi
Tomcat下载好后,在bin目录下用脚本startup.bat启动就可以了。这里如果有问题,可以看大神博文。
以上环境搭建好以后,就可以编写一个测试程序啦。
程序编写
首先,我在spring下面新建了包,在包下下面定义了一个接口FirstDao,以及一个接口实现类FirstDaoImpl,项目目录结构如下
FirstDao.java
package com.wang.dao;
public interface FirstDao {
public void hello();
}
FirstDaoImpl.java
package com.wang.dao;
public class FirstDaoImpl implements FirstDao{
public void hello() {
System.out.println("hello,spring");
}
}
在resource目录下编写了一个Spring的配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="first" class="com.wang.dao.FirstDaoImpl"/>
</beans>
然后编写了一个测试类进行测试Test.java
package com.wang;
import com.wang.dao.FirstDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
FirstDao test =(FirstDao) context.getBean("first");
test.hello();
}
}
好啦,完成上面以后,点击运行,看到下图效果,就完成了Spring的一次初尝试