Spring的简单使用

JAVA学习网 2020-11-06 18:19:03

我的第一个Spring程序

本项目是基于Mavan创建. 

1.创建项目

 

java包需要Sources Root

resurose包需要Resources Root

test包需要Test Sources Root

 

pom.xml导入依赖

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-expression</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>4.3.7.RELEASE</version>
      <scope>test</scope>
    </dependency>

 

2.在dao包下创建SpringDao接口

/**
 * @Description TODO
 * @Author Charon <1819248612@qq.com>
 * @create 2020-11-05-23:32
 * @Version 1.0.0
 */
public interface SpringDao {
    public void firstDome();
}

 

 3.在dao包下创建接口的实现类SpringDaoImpl

**
 * @Description TODO
 * @Author Charon <1819248612@qq.com>
 * @create 2020-11-05-23:34
 * @Version 1.0.0
 */
public class SpringDaoImpl implements SpringDao{
    @Override
    public void firstDome() {
        System.out.println("hello spring");
    }
}

 

 4.在resurose包下创建Spring的配置文件ApplicationContext.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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">

    <!--
        由Spring容器创建这个类的实例;
        对象的名称一般对应到id属性;
        class类似于new   后面的类名:全限定包名,一般不能写接口和抽象类
        -->
    <bean id="springDome1" class="com.charon.dao.SpringDaoImpl"></bean>
    <bean id="springDome2" class="com.charon.dao.SpringDaoImpl"></bean>
</beans>

 

5.在test包下创建SprinTest

package com.test;

import com.charon.dao.SpringDao;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

import javax.swing.*;

/**
 * @Description TODO
 * @Author Charon <1819248612@qq.com>
 * @create 2020-11-05-23:38
 * @Version 1.0.0
 */
public class SpringTest {

    /**
     * 第一种获取实例方法:
     *        使用ApplicationContext获取bean实例
     *
     *   根据bean的id获取bean的实例,如果定义了2个bean不会报错
     */
    @Test
    public void test(){
        //定义Spring配置文件的位置
        String xmlPath = "ApplicationContext.xml";
        //初始化Spring配置文件,加载配置文件
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
        //通过容器获取SpringDaoImpl实例
        SpringDao springDome = (SpringDao) applicationContext.getBean("springDome2");
        //调用SpringDao中的方法
        springDome.firstDome();
    }


    /**
     * 第二种获方法:
     *    通过BeanFactory获取bean的实例
     *
     *   根据bean的id获取bean的实例,如果定义了2个bean不会报错
     */
    @Test
    public void test1(){
        //定义Spring配置文件的位置
        String xmlPath = "ApplicationContext.xml";
        //解析配置文件
        Resource resource =new ClassPathResource(xmlPath);
        //获取BeanFactory
        BeanFactory beanFactory = new XmlBeanFactory(resource);
        //通过bean的id获取bean对象
        SpringDao springDao = (SpringDao) beanFactory.getBean("springDome1");
        //调用SpringDao中的方法
        springDao.firstDome();
    }

    /**
     * 第三种获方法:
     *    通过BeanFactory获取bean的实例
     *
     *   根据bean的id获取bean的实例,如果定义了2个bean不会报错
     */
    @Test
    public void test2(){
        //定义Spring配置文件的位置
        String xmlPath = "ApplicationContext.xml";
        //解析配置文件
        Resource resource = new ClassPathResource(xmlPath);
        //获取BeanFactory 
        BeanFactory beanFactory =new XmlBeanFactory(resource);
        //通过bean的id获取实例
        SpringDao springDome1 = beanFactory.getBean("springDome1", SpringDao.class);
        //调用方法
        springDome1.firstDome();
    }
}

 项目结构展示

 

 

 

6.运行结果

 

阅读(2679) 评论(0)