Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

时间:2021-11-07 09:18:08

  

一. Spring 框架简介及官方压缩包目录介绍

Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

  1. 主要发明者:Rod Johnson
  2. *理论推崇者:

2.1 *理论:不用重复发明*.

2.2 IT 行业:直接使用写好的代码.

  1. Spring 框架宗旨:不重新发明技术,让原有技术使用起来更加方便.
  2. Spring 几大核心功能

4.1 IoC/DI控制反转/依赖注入

4.2 AOP面向切面编程

4.3 声明式事务.

  1. Spring 框架runtime

5.1 test: spring 提供测试功能

5.2 Core Container:核心容器.Spring 启动最基本的条件.

  5.2.1 Beans : Spring 负责创建类对象并管理对象

  5.2.2 Core: 核心类

  5.2.3 Context: 上下文参数.获取外部资源或这管理注解等

  5.2.4 SpEl: expression.jar

5.3 AOP:  实现aop 功能需要依赖

5.4 Aspects:  切面 AOP 依赖的包

5.5 Data Access/Integration : spring 封装数据访问层相关内容

  5.5.1 JDBC : Spring 对JDBC 封装后的代码.

  5.5.2 ORM: 封装了持久层框架的代码.例如Hibernate

  5.5.3 transactions:对应spring-tx.jar,声明式事务使用.

5.6 WEB:需要spring 完成web 相关功能时需要.

  5.6.1 例如:由tomcat 加载spring 配置文件时需要有spring-web包

6.Spring 框架中重要概念

  6.1 容器(Container): Spring 当作一个大容器.

  6.2 BeanFactory 接口.老版本.

  6.2.1 新版本中 ApplicationContext 接口, BeanFactory 子接口.BeanFactory 的功能在ApplicationContext 中都有.

7.从Spring3 开始把Spring 框架的功能拆分成多个jar.

  7.1 Spring2 及以前就一个jar


.Spring IoC 的概念

1 中文名称:控制反转(Inversion of Control)

2.IoC 是什么?

  2.1 IoC 完成的事情原先由程序员主动通过 new 实例化对象事情,转交给Spring 负责.

  2.2 控制反转中控制指的是:控制类的对象.

  2.3 控制反转中反转指的是转交给Spring 负责.

  2.4 IoC 最大的作用:解耦.

    2.4.1 程序员不需要管理对象.解除了对象管理和程序员之间的耦合.


.Spring 环境搭建

  1. 导入jar

    1.1 四个核心包 + 一个日志包(commons-logging)

Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

    1.2 idea编译器: 整体配置后  的 Spring项目

Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建

 

2.在src 下新建 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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
        id表示获取到的对象的标识;class表示创建那个类的对象;
    -->
    <bean id="peo" class="com.test.People"/>
</beans>

 

  2.1 文件名称和路径自定义.

  2.2 记住 Spring 容器 ApplicationContext,applicationContext.xml 配置的信息最终存储到了AppliationContext 容器中;

  2.3 spring 配置文件是基于schema (模式)

    2.3.1 schema 文件扩展名.xsd

    2.3.2 把schema 理解成DTD 的升级版.

      2.3.2.1 DTD 具备更好的扩展性,更优秀的语法检查器

    2.3.3 每次引入一个xsd 文件其实是一个namespace(xmlns)

 

2.4 配置文件中只需要引入基本schema

  2.4.1 通过<bean/> 创建对象.

  2.4.2 默认配置文件被加载时创建对象.

3.编写测试方法

  3.1 getBean(“<bean>标签id ”,  返回值类型);

    3.1.1 如果没有第二个参数, 默认返回值的类型是Object.

  3.2  getBeanDefinitionNames(),返回Spring 容器中目前所有管理的所有对象.

 4.编写bean 和 测试类

Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建Spring4- 01 - Spring框架简介及官方压缩包目录介绍- Spring IoC 的概念 - Spring hello world环境搭建
package com.test;

public class People {
    private int id;
    private String name;

    public People() {
        System.out.println("执行People的构造方法!");
    }

    @Override
    public String toString() {
        return "People{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

}
Pelple bean类

测试类test01 如下,使用Spring配置文件进行新建对象:

package com.test;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.context.ApplicationContext;


public class test01 {
    public static void main(String[] args) {
    //    People people=new People();
        ApplicationContext ac=new ClassPathXmlApplicationContext("applicationcontext.xml");
        People people = ac.getBean("peo", People.class);
        System.out.println(people);

     //   String[] names=ac.getBeanDefinitionNames();
    //    System.out.println("输出Spring所有的管理的对象");
   //     for(String string:names){
   //         System.out.println(string);
   //     }
    }
}