一、spring简单概述
Spring是一个开源的控制反转(IOC)和面向切面(AOP)的容器框架。它的主要目的是简化企业开发。
二、创建Maven项目(开发工具Intellij idea)
1、打开intellij idea,创建maven的web项目
2、点击next,填写maven信息
GroupId为工程名(唯一性),ArtifactId为工程将要产生的或需要使用的文件,Version表示版本号
3、配置本地maven(默认配置在C盘中)
4、设置项目名称和选择工作空间
5、点击Finish,项目创建成功,可以看到项目目录如下
此时项目创建完成。这时还需要在项目添加相应的目录,让其变成通用形式的maven项目,即在main目录下添加java目录,在src目录下添加test/java目录
到此maven的web项目创建成功
三、配置pom.xml,引进相应的jar包
1、打开pom.xml可看到如下信息
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>chensr</groupId>
<artifactId>myBaseFrame</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>myBaseFrame Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>myBaseFrame</finalName>
</build>
</project>
可以看到刚才设置的groupId等信息,而且还自带引入了junit测试jar。我们这是把name和url两个节点删掉(没作用),并且将junit的版本换成4.12(<version>4.12</version>)
2、添加maven远程仓库
<!-- 指定Maven仓库 -->
<repositories>
<repository>
<id>maven</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>alibaba-opensource</id>
<name>alibaba-opensource</name>
<url>http://code.alibabatech.com/mvn/releases/</url>
<layout>default</layout>
</repository>
<repository>
<id>alibaba-opensource-snapshot</id>
<name>alibaba-opensource-snapshot</name>
<url>http://code.alibabatech.com/mvn/snapshots/</url>
<layout>default</layout>
</repository>
</repositories>
3、添加框架版本号信息(这里用的是spring4.3)
<!-- 设置框架的版本号 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.3.0.RELEASE</spring.version>
</properties>
4、添加spring依赖的jar
<!-- 配置依赖jar包-->
<dependencies>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</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-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
注意,这里只需要添加spring的spring-core、spring-context、spring-beans、spring-context-support,此时会软件会自动帮忙下载与spring相关的其他关联jar包,比如commons-logging-1.1.1.jar。
5、最终配置文件如下
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>chensr</groupId>
<artifactId>myBaseFrame</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<!-- 指定Maven仓库 -->
<repositories>
<repository>
<id>maven</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>alibaba-opensource</id>
<name>alibaba-opensource</name>
<url>http://code.alibabatech.com/mvn/releases/</url>
<layout>default</layout>
</repository>
<repository>
<id>alibaba-opensource-snapshot</id>
<name>alibaba-opensource-snapshot</name>
<url>http://code.alibabatech.com/mvn/snapshots/</url>
<layout>default</layout>
</repository>
</repositories>
<!-- 设置框架的版本号 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.3.0.RELEASE</spring.version>
</properties>
<dependencies>
<!-- 测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</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-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
<!-- maven插件 -->
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
四、在main/java目录下创建HelloWorld类
public class HelloWorld {
public String name;
public void say(){
System.out.println(this.getName()+": hello spring");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
五、在resources目录下添加spring配置文件spring-context.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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"
default-lazy-init="true">
<bean id="helloWorld" class="com.chensr.user.HelloWorld">
<property name="name" value="chensr"></property>
</bean>
</beans>
注意:上面<bean>中的<property>是在为HelloWorld类name属性注入值
六、在test/java添加测试类
public class Test {
@org.junit.Test
public void test(){
ApplicationContext ac = new ClassPathXmlApplicationContext("spring-context.xml");
HelloWorld helloWorld = (HelloWorld)ac.getBean("helloWorld");
helloWorld.say();
}
}
右键点击run Test,即可看到如下信息
Spring第一个小例子成功!