[03] Spring "Hello World"

0、写在前面的话

本篇以一个简单的示例,描述了Spring通过容器对于Java类的装载和获取。在以下我们可以看到,有一个Java类Coder,我们全程并没有手动调用new来进行实例化,而是从Spring的容器ApplicationContext中去获取到了该类的实例化对象

1、使用Maven建立Spring项目

<dependencies> 
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.16.RELEASE</version>
    </dependency>
</dependencies>

使用maven建立项目,按Spring官方提供的dependency,IDE自动会下载关联Spring的相关核心包,如下图:
 

2、建立一个简单的Java类 

public class Coder {
    private String name;
    private int age;

    public void print(){
        System.out.println("Hello World");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

3、建立Spring的配置文件

对于IDEA而言,pom.xml已经配置了Spring的依赖,那么在新建Spring的配置文件时,可以直接通过IDEA创建最基础的配置文件:
 
然后配置Java类的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">

    <bean id="coder" class="dulk.learn.spring.Coder"></bean>

</beans>

4、初始化容器,获取实例

Spring提供了多种初始化容器的方式,其中最常见的有两种:
  • BeanFactory,早期的JavaBean工厂类实现(不推荐
  • ApplicationContext,对BeanFactory的扩展,提供了更多的功能,如国际化处理、Bean自动装配等

BeanFactory
public class Test {
    public static void main(String[] args) {
        //BeanFactory
        ResourcePatternResolver rpt = new PathMatchingResourcePatternResolver();
        Resource resource = rpt.getResource("/applicationContext.xml");
        BeanFactory bf = new XmlBeanFactory(resource);
        Coder coder = (Coder) bf.getBean("coder");
        coder.print();
    }
}

ApplicationContext
public class Test {
    public static void main(String[] args) {
        //ApplicationContext
        ApplicationContext ac = new ClassPathXmlApplicationContext("/applicationContext.xml");
        Coder coder = (Coder) ac.getBean("coder");
        coder.print();
    }
}

 
原文地址:https://www.cnblogs.com/deng-cc/p/8847269.html