Spring基础学习笔记(一)

Spring

文章目录

  • Spring
    • 1、Spring框架宗旨:
    • 2、spring几大核心功能:
    • 3、Spring runtime(各模块):
      • 3.1、test:Spring提供测试功能。
      • 3.2、Core Container:核心容器,Spring启动最基本条件
          • 3.2.1、Beans:Spring负责创建类的对象并管理对象
          • 3.2.2、Core:核心类
          • 3.2.3、Context:上下文参数,用来获取外部资源或管理注解等
          • 3.2.4、SpEL:expression.jar
      • 3.3、AOP:实现aop功能需要的依赖
      • 3.4、Aspects:切面AOP所依赖的包
      • 3.5、Data Access/Integration:Spring封装数据访问层的相关内容
          • 3.5.1、JDBC:Spring对JDBC的封装
          • 3.5.2、ORM:封装了持久层框架的代码,比如Hibernate
          • 3.5.3、transactions:对应Spring-tx.jar,用于声明式事务的使用
      • 3.6、WEB:Spring完成web相关功能时需要
          • 3.6.1、tomcat加载Spring配置文件时需要有spring-web包
    • 4、IOC
          • 4.1、中文名称:控制反转 英文名称:(Inversion of Control)
          • 4.2、IOC是什么?
            • 4.3、控制反转中控制指的是:控制类的对象
            • 4.4、控制反转中反转指的是:给Spring负责实例化对象
            • 4.5、IOC最大的作用:解耦(解的是对象管理和程序员之间的耦)
    • 5、搭建一个最简单的Spring框架
            • 5.1、导入jar包
            • 5.2、创建一个Spring的配置文件(applicationContext.xml)
            • 5.3、编写测试方法
    • 6、Spring创建对象的三种方式
            • 6.1、通过构造方法创建(分为有参构造创建和无参构造创建)
            • 6.2、通过实例工厂创建(先要创建工厂,然后才能生产对象)
            • 6.3、通过静态工厂创建
    • 7、给Bean属性赋值(注入)
          • 7.1、通过构造方法设置值(用value赋值)
          • 7.2、设置注入(使用set方法)
    • 8、DI
          • 8.1、中文名称:依赖注入 英文名称:(Dependency Injection)
          • 8.2、什么是DI:DI和上面的IOC是一样的,当一个类中需要依赖另一个类的对象时,把另一个类的对象赋值给这个类的过程就叫DI(依赖注入)。
    • 9、总结

1、Spring框架宗旨:

1.1不重新发明技术,让原有的技术使用起来更加方便

2、spring几大核心功能:

2.1、IOC/DI(控制反转/依赖注入)
2.2、AOP(面向切面编程)
2.3、声明式事务

3、Spring runtime(各模块):

Spring基础学习笔记(一)_第1张图片

3.1、test:Spring提供测试功能。

3.2、Core Container:核心容器,Spring启动最基本条件

3.2.1、Beans:Spring负责创建类的对象并管理对象
3.2.2、Core:核心类
3.2.3、Context:上下文参数,用来获取外部资源或管理注解等
3.2.4、SpEL:expression.jar

3.3、AOP:实现aop功能需要的依赖

3.4、Aspects:切面AOP所依赖的包

3.5、Data Access/Integration:Spring封装数据访问层的相关内容

3.5.1、JDBC:Spring对JDBC的封装
3.5.2、ORM:封装了持久层框架的代码,比如Hibernate
3.5.3、transactions:对应Spring-tx.jar,用于声明式事务的使用

3.6、WEB:Spring完成web相关功能时需要

3.6.1、tomcat加载Spring配置文件时需要有spring-web包

4、IOC

4.1、中文名称:控制反转 英文名称:(Inversion of Control)
4.2、IOC是什么?

IOC主要完成的就是原来程序员通过new来实例化对象的事情,把new对象的事情交给Spring负责

4.3、控制反转中控制指的是:控制类的对象
4.4、控制反转中反转指的是:给Spring负责实例化对象
4.5、IOC最大的作用:解耦(解的是对象管理和程序员之间的耦)

5、搭建一个最简单的Spring框架

5.1、导入jar包

导入四个核心包和一个日志包(commons-logging)
Spring基础学习笔记(一)_第2张图片

5.2、创建一个Spring的配置文件(applicationContext.xml)

5.2.1、 文件名称和路径自定义.
5.2.2、 记住Spring 容器ApplicationContext,applicationContext.xml 配
置的信息最终是存储到了AppliationContext 容器中
5.2.3、spring 配置文件是基于schema的
5.2.4、配置文件中只需要引入基本schema(然后通过来创建对象)
默认配置文件被加载时穿件对象的






5.3、编写测试方法

5.3.1、使用getBean(“标签id 值”,返回值类型);如果没有第二个参数,
则默认是Object的
5.3.2、使用getBeanDefinitionNames(),能得到Spring 容器中目前所有管理的所有
对象.

ApplicationContext ac = new  ClassPathXmlApplicationContext("applicationContext.xml");
People people = ac.getBean("peo",People.class);
System.out.println(people);

// String[] names = ac.getBeanDefinitionNames();
// for (String string : names) {
// System.out.println(string);
// }

6、Spring创建对象的三种方式

6.1、通过构造方法创建(分为有参构造创建和无参构造创建)

无参构造创建是默认情况,有参构造创建则需要提供有参构造方法,如果有多个构造函数,则使用的是最后一个有参构造函数:






其中index 表示参数的索引,从0 开始;name:表示参数名;type:类型(区分开关键字和封装类int 和Integer)

6.2、通过实例工厂创建(先要创建工厂,然后才能生产对象)

必须先要有个实例工厂的

public class PeopleFactory {
        public People newInstance(){
                 return new People(1,"测试");
                 }
          }

然后在配置文件(applicationContext.xml)中配置工厂的对象以及需要创建的对象



6.3、通过静态工厂创建

不需要创建工厂的对象先,可以快速创建对象
在上面的方法基础上加个static(就变成了静态工厂)

public class PeopleFactory {
        public  static People newInstance(){
                 return new People(1,"测试");
                 }
          }

然后在配置文件(applicationContext.xml)中直接使用该方法,而不需要先实例化工厂。


7、给Bean属性赋值(注入)

7.1、通过构造方法设置值(用value赋值)
7.2、设置注入(使用set方法)

7.2.1、如果属性类型是基本数据类型,则直接通过name-value来设置注入





7.2.2、如果属性是Collection(集合类型),如(list),其他的差不多,只是更改一下标签。



1
2
3


7.2.3、如果属性是map









8、DI

8.1、中文名称:依赖注入 英文名称:(Dependency Injection)
8.2、什么是DI:DI和上面的IOC是一样的,当一个类中需要依赖另一个类的对象时,把另一个类的对象赋值给这个类的过程就叫DI(依赖注入)。







9、总结

Spring是一个容器,程序员把所有的创建类的对象的操作都交给这个容器来管理,随着配置文件的加载,里面的所有实例化对象也就随即生成了,这样就实现了对象管理和程序员之间的最大解耦的作用。
Spring存在的意义是为了让其他的技术能够更加方便的使用,比如Mybatis,把所有繁琐的创建工作都交给Spring来完成,程序员就能够更高效的开展进一步的工作。

你可能感兴趣的:(java学习血路)