在我的上篇博客中,留下了一个伏笔,作为这篇博客的开篇:
为什么使用spring?
这里摘取我在网上看到的内容作为这个问题的答案:
Spring的IOC和AOP两大核心功能可以大大降低应用系统的耦合性、简化开发流程。
Spring框架技术可在不同层次上起作用,比如IOC管理普通的POJO对象、AOP增强了系统服务和其它组件(事务、MVC、JDBC、ORM和远程调用等)。Spring的一大特点就是基于接口编程,它是非侵入式的服务。用户端绑定接口使用JAVA EE服务,而非直接绑定服务,而且应用也可以使用不同的服务(Hibernate、MyBatis等)。我们可以根据自己的需要,使用Spring的一部分服务,而不必使用完整的Spring系列项目。
说是为什么使用spring,其实也是在阐述使用spring的好处,在工作中使用spring,一方面是因为上面的原因,另一部分原因则在于工作中要用到spring,两者综合一下,这就我为什么要使用,学习spring的原因.
Spring项目的搭建
为了方面自己对spring的学习,首先应该能够搭建起来一份基于spring的项目,这样才能够在练习中逐渐进步,我在刚开始学习spring的时候,觉得搭建sprig项目是最痛苦的事情= =,但是,在工作中用的多了之后,其实发现spring搭建起来还是比较简单的,当前,对于目前的我来说,简单是因为只搭建最简单的部分,向着能跑就是成功进发~
准备工作:
我使用的IDE工具是eclipse neon release 4.6.2版.
使用的maven版本为3.9.2版.
首先使用maven创建一个quickstart项目,
第一步,在project explorer视图中,右键空白处,点击new >> other
输入maven,选中Mave project ,点击next
继续点击next,
选中quickstart,点击next.
输入groupId,artifactId以及version.可以简单的将groupId理解为组织ID,将artifactId理解为项目名称,将version理解为版本.
点击finish.
注:此处项目名称为com.panda.spring.first2的原因是因为,在我的工作空间内已经包含com.panda.spring.first项目,我手动改成2的.
之后,我们打开项目的pom.xml文件,
在pom.xml文件中添加spring项目的依赖.
POM文件代码如下:
注:此处我导入了spring所有的包
<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>online.52panda</groupId>
<artifactId>com.panda.spring.first2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>com.panda.spring.first2</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- spring的版本 -->
<spring.version>4.3.6.RELEASE</spring.version>
</properties>
<dependencies>
<!-- 导入spring所有依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument-tomcat</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc-portlet</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
保存pom.xml文件后,eclipse将会自动下载所需jar包,如果没有自动下载,右键工程,选中项目,update,等待jar下载完毕,下载速度,取决于宿主机器网络环境.
更新之后。jar包如下:
然后我们开始使用spring:
在src/main/java下新建以后包:com.panda.pojo
然后建一个类Panda:
package com.panda.pojo;
public class Panda {
private String name;
private String message;
public void sayMessage(){
System.out.println(name+"说:"+message);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
再在类编译路径下新建一个spring-demo.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
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="panda" name="panda" class="com.panda.pojo.Panda">
<property name="name" value="Panda"/>
<property name="message" value="hi,i`am panda"/>
</bean>
</beans>
最后编写,测试类:
package com.panda.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.panda.pojo.Panda;
public class SpringDemo {
@org.junit.Test
public void SpringFirst(){
@SuppressWarnings("resource")
ApplicationContext act=new ClassPathXmlApplicationContext("spring-demo.xml");
Panda panda=act.getBean(Panda.class);
panda.sayMessage();
}
}
运行效果如下:
到此,最简单的spring搭建完毕,下一步就是开始了解spring的基础知识。