最近开始在学习spring框架,发现市面上许多书其实都不是入门级的,对初学者太不友好了。
纸上得来终觉浅,绝知此事要躬行。还是自己动手实践好啊!
话不多说,学什么东西都得从HelloWorld开始!
实验环境:IntelliJ IDEA
1.初始化项目
首先打开IntelliJ IDEA,选择创建新项目
这里我们选择maven项目(尽管有现成的spring选项,但是我建议选maven,因为现在企业大部分都是用maven来管理java项目的)
我们直接点击next进入下一步
接着我们需要填写maven构件的三坐标了,随便填吧。
GroupId比如填cn.sh.robin
ArtifactId比如填spring-study
再点击next进入下一步
这里填写项目路径
完毕之后点击Finish
2.项目主体编写
首先需要配置pom.xml,需要配置的主要是文件编码、项目依赖以及一些插件
由于我们需要做的是一个最简单的HelloWorld,所以依赖中只需要spring-context即可,而插件的话现在也只需要maven-compiler-plugin
不出意外的话,屏幕右上方会出现一个关于maven的设置项,让你选择是Import Changes 还是 Enable Auto-Import,这两者的区别就是前者是手动更新依赖,后者自动更新依赖,一般就选自动就好了。
pom.xml的代码如下所示
<?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>cn.robin</groupId> <artifactId>spring-study</artifactId> <version>1.0-SNAPSHOT</version> <!-- Properties --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jdk.version>1.8</jdk.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.5.RELEASE</version> </dependency> </dependencies> <build> <plugins> <!-- Compile --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> </plugins> </build> </project>
编写HelloWorld.java
我们打开项目,可以看到maven项目的结构如图所示
我们在src/main/test目录下新建一个HelloWorld.java
HelloWorld.java的代码如下所示
public class HelloWorld { private String str; public String getStr() { return str; } public void setStr(String str) { this.str = str; } }
我们在src/test目录下新建一个resources目录
接着在resources目录下用ItelliJ IDEA的新建功能来建立一个带Spring Config模板的xml文件
这时IntelliJ会提示探测到了spring框架如图所示
我们点击Config按钮,在弹出来的配置框中选择OK即可完成框架配置
我们来编写HelloWorld的bean配置
<?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"> <!-- HelloWorld Bean --> <bean id="HelloWorld" class="HelloWorld"> <property name="str"> <value>Hello World! Hello Spring!</value> </property> </bean> </beans>
到这里,HelloWorld的主体已经完成。
3.编写测试类
这里我们的测试类比较简单,代码如下所示
import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class HelloWorldTest { public static void main (String args[]) { ApplicationContext ac=new FileSystemXmlApplicationContext("src/test/resources/spring-config.xml"); HelloWorld helloWorld = (HelloWorld) ac.getBean("HelloWorld"); System.out.println(helloWorld.getStr()); } }
上面所示代码我们用的是FileSystemXmlApplicationContext来加载spring-config.xml,如果我们用ClassPathXmlApplicationContext来加载的话路径应当如如下面代码所示
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class HelloWorldTest { public static void main (String args[]) { ApplicationContext ac=new ClassPathXmlApplicationContext("spring-config.xml"); HelloWorld helloWorld = (HelloWorld) ac.getBean("HelloWorld"); System.out.println(helloWorld.getStr()); } }
可以看到屏幕中会输出我们配置中的"Hello World! Hello Spring!",至此Spring Hello World大功告成!