什么是Spring

轻量级的开源javaEE框架

Spring有什么特点

  1. 方便解耦,简化开发
  2. AOP变成支持
  3. 方便程序测试
  4. 方便和其他框架整合
  5. 方便进行事务操作
  6. 降低API开发难度
  7. java源码是经典学习规范

Spring的核心是什么

AOP面向切面变成,IOC 反转控制

Spring架构图中

Spring关联insert spring 相互引用_spring

使用Spring完成一个小功能

使用Spring得到 Function的对象,并用这个对象调用 test() 输出 以下内容

public class Function {
    public void test() {
        System.out.println("这是一个spring程序");
    }
}

步骤一

创建一个maven项目,目录结构如下,java项目和maven的目录结构不同,根目录也不同 注意区分

Spring关联insert spring 相互引用_spring_02


首先导入spring项目启动必要的 5个包

在spring架构图中 Core Container中的 4个包

Spring-core

Spring-Beans

Spring-context

Spring-Expression

和一个Commons - logging包 用来记录spring的日志操作, 强制要求导入, 不然会报错

Commons - logging包的作用:它是一个更上层的一个抽象, 叫日志抽象, 如果配了有log4j 它就会去调用log4j;如果没有就去找jdk的log,如果还是没有,他就会有自己的一套调用,用这个的好处就是可以对日志工具进行更换

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>

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

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>

        <!--用来记录spring的日志操作, 强制要求导入, 不然会报错-->
        <!--commons-logging.jar:
        它是一个更上层的一个抽象,叫日志抽象,如果你配了有log4j,它就会去调用log4j,如果没有就去找jdk的log,如果还是没有,他就会有自己的一套调用,
        用这个的好处就是可以对日志工具进行换-->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>

步骤二

创建Function类,写出要实现的功能

public class Function {
    public void test() {
        System.out.println("这是一个spring程序");
    }
}

步骤三

创建java项目和创建maven项目是不同的,如果是创建java项目的话,Bean.xml 文件从 src目录下寻找,如果是创建maven项目的话,配置文件需要放到resource目录下才行

创建一个spring的配置文件 ,并将文件放在resource文件目录下

<?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="function" class="com.lcy.springtest.Function"></bean>

</beans>

步骤四

创建测试类,导入junit包 – 此类在 com.lcy.springtest.test 包下

public class FunctionTest{
    @Test
    public void testFunction(){
        //获取配置文件, maven项目 类路径是resource下;java项目 类路径是src下
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Bean.xml");
      	//通过id得到 xml文件中 通过spring创建的bean,并转换成响应的类
        Function function = applicationContext.getBean("function", Function.class);
      	//通过这个对象 调用响应的方法
        function.test();
    }
}

运行此测试方法得到结果如下

Spring关联insert spring 相互引用_Spring关联insert_03