Spring基础知识(2)- 创建 Spring 程序


本文将在 Windows 下使用 IntelliJ IDEA 和 Apache Maven 创建一个简单的 Spring 程序。在开始之前,确保已经正确搭建了 Spring 开发环境,如何搭建 Spring 开发环境见:

Windows版本 : Windows 10 Home (20H2)   

IntelliJ IDEA:Community Edition for Windows 2020.1.4

Apache Maven:3.8.1

1. 在 IDEA 上创建 Maven Quickstart 项目

    1) 运行 IDEA
   
        点击菜单 New 创建 Project:
        
        New Project -> Project Type: Maven -> Project SDK: 1.8 -> Check "Create from archtype" -> select "org.apache.maven.archtypes:maven-archtype-quickstart" -> Next

            Name: SpringBasic
            GroupId: com.example
            ArtifactId: SpringBasic

        -> Finish

    2) 生成的项目目录结构和文件

        |-- src
        |   |-- main
        |   |     |-- java
        |   |       |-- com
        |   |            |-- example
        |   |                     |-- App.java
        |   |-- test
        |        |-- java
        |               |-- com
        |                    |-- example
        |                         |-- AppTest.java
        |-- pom.xml

        App.java 的代码:

1             package com.example;
2 
3             public class App {
4                 public static void main( String[] args ) {
5                     System.out.println( "Hello World!" );
6                 }
7             } 

2. 编译运行

    1) 可以选择 Java SDK 版本

        在IDE项目列表 -> External Libraries -> <1.8>, 在 "<1.8>" 上点击鼠标右键 跳出菜单,选择 Open Library Settings 菜单项,跳出对话框。
    
        在对话框上 Platform Settings -> SDKS 选择或添加 <1.8>

            Name: 1.8
            JDK home path: select 1.8 SDK or download a SDK

    2) Run App.main()

        Open App.java, click mouse right button, select Run "App.main()"

    3) Edit Configurations

        Click "+" add new configuration -> Select "Application"
            Name: SpringBasic
            Main class: com.example.App
        -> Apply / OK

     Click Run "SpringBasic"

          Hello World!

3. 导入 Spring, log4j, slf4j 依赖包

    访问 http://www.mvnrepository.com/,查询 Spring, log4j, slf4j
    
    本文选择了 Spring 4.3.9.RELEASE、log4j 1.2.17、slf4j 1.7.36, log4j 和 slf4j 用于把 Spring 输出的 log 信息保存到 log 文件。

    修改 pom.xml,添加 Spring 依赖:

       
            ...

           
                ...
               
               
                    org.slf4j
                    slf4j-api
                    1.7.36
               

               
               
                    org.slf4j
                    slf4j-log4j12
                    1.7.36
                    pom
                    test
               

               
               
                    log4j
                    log4j
                    1.2.17
               


               
               
                    org.springframework
                    spring-core
                    4.3.9.RELEASE
               


               
               
                    org.springframework
                    spring-context
                    4.3.9.RELEASE
               


               
               
                    org.springframework
                    spring-beans
                    4.3.9.RELEASE
               


               
               
                    org.springframework
                    spring-jdbc
                    4.3.9.RELEASE
               


                ...
           


            ...
       


    在IDE中项目列表 -> 点击鼠标右键 -> Maven -> Reload Project

4. 创建/修改 Java 类

    在 src/main/java/com/example 目录下,内容如下:

 1         package com.example;
 2 
 3         import org.springframework.context.ApplicationContext;
 4         import org.springframework.context.support.ClassPathXmlApplicationContext;
 5 
 6         public class App {
 7             public static void main(String[] args) {
 8 
 9                 // System.out.println( "Hello World!" );
10                 
11                 ApplicationContext context1 = new ClassPathXmlApplicationContext("spring-beans.xml");
12                 Test01 obj1 = context1.getBean("Test01", Test01.class);
13 obj1.getMessage(); 14 } 15 } 16 17 class Test01 {
18 private String message; 19 20 public void setMessage(String message) { 21 this.message = message; 22 } 23 24 public void getMessage() { 25 System.out.println("Message: " + message); 26 } 27 }

5. 创建 Spring 配置文件 spring-beans.xml   

   在 src/main/resources 目录下,创建 spring-beans.xml (通常命名为 applicationContext.xml,不强制要求),内容如下:

 1         <?xml version="1.0" encoding="UTF-8"?>
 2          3                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4                 xmlns:context="http://www.springframework.org/schema/context"
 5                 xsi:schemaLocation="http://www.springframework.org/schema/beans
 6                                 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
 7                                 http://www.springframework.org/schema/context
 8                                 http://www.springframework.org/schema/context/spring-context-4.0.xsd" >
 9 
10             class="com.example.Test01">
11                 
12             
13 
14         

*注:src/main/resources 目录不存在,先创建这个目录,再添加 spring-beam.xml (下文如遇到目录不存在,自行创建)

6. 创建 log4j.properties 文件

    在 src/main/resources 目录下,创建 log4j.properties,内容如下:

        # Define the root logger with appender file
        log4j.rootLogger = DEBUG, FILE

        # Define the file appender
        log4j.appender.FILE=org.apache.log4j.FileAppender
        # Set the name of the file
        log4j.appender.FILE.File=d:\\temp\\spirng-basic_log4j.txt

        # Set the immediate flush to true (default)
        log4j.appender.FILE.ImmediateFlush=true

        # Set the threshold to debug mode
        log4j.appender.FILE.Threshold=debug

        # Set the append to false, overwrite
        log4j.appender.FILE.Append=false

        # Define the layout for file appender
        log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
        log4j.appender.FILE.layout.conversionPattern=%m%n       


7. 运行

    参考 "2. 编译运行"

    运行 App.java,IDEA 控制台中显示信息如下:

        Message: Test01 Hello World!