IDEA社区版新建一个最简单的Spring工程(Spring框架搭建 01)

创建Spring项目

  1. IDEA打开New Project-Maven Archetype,选择Archetype:org.apache.maven.archetypes:maven-archetype-quickstart
  1. IDEA更换国内源,Maven可以配置aliyun镜像(这里略)

  2. 添加 Spring 依赖

这里选择当前spring-4的最新版本,也可以选择其它版本(https://mvnrepository.com/artifact/org.springframework/spring-core)

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.30.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.30.RELEASE</version>
    </dependency>

运行第一个 Spring 项目

  1. 这个模板里已经包含了main方法启动类,还需要新建resources文件夹
  1. 新建一个测试学生类

    package org.example;

    public class Student {

     public Student(){
         System.out.println("no-args");
     }
     public Student(String arg){
         System.out.println(arg);
     }
     public void print(String str) {
         System.out.println(str);
     }
    

    }

  2. 将Bean注册到Spring项目上下文

需要在resources中新建一个XML文件并写入如下代码,文件名可以设为spring-config.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:content="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
                           https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

在XML文件中加入bean注册信息:<bean id="student" class="org.example.Student"/>

  1. 将 Bean 对象从 Spring 上下文中取出来使用,执行run命令。

    public static void main( String[] args )
    {
    System.out.println( "Hello World!" );
    // 获取 Spring 的上下文对象
    ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
    // 获取 Bean 对象
    Student student = (Student) context.getBean("student");
    // 使用 Bean 对象
    student.print("hello world");
    }

查看执行结果

思考

  1. Bean类是否有更方便的注册发现方式?

    可以采用扫描配置:<content:component-scan base-package="org.example"/>

  2. 为什么通过spring管理bean比较好?

    解耦。通过spring管理和初始化bean,方便统一使用,避免一点改动多处修改的麻烦。