Spring5框架—2021.2.26

Posted 正好没事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring5框架—2021.2.26相关的知识,希望对你有一定的参考价值。

Spring概述

  • Spring是轻量级的开源的JavaEE框架;

  • Spring可以解决企业应用开发的复杂性;

  • Spring有两个核心部分:IOC和AOP,IOC:控制翻转,把创建对象过程交给Spring进行管理;AOP:面向切面,不修改源代码进行功能增强;

  • 特点:方便解耦,简化开发;AOP编程的支持;方便程序测试;方便集成其他框架;方便进行事务操作;

IOC容器(Inversion of Control, 控制反转)

  • 概念和原理:控制反转,把对象创建和对象之间的调用过程交给Spring进行管理,降低耦合度。

  • 底层原理:xml解析、工厂模式、反射

  • IOC:ioc思想基于IOC容器完成,IOC容器底层就是对象工厂;

    Spring提供IOC容器实现的两种方式(两个接口):BeanFactory,IOC容器的基本实现,是Spring内部的使用接口,不提供开发人员进行使用,加载配置文件时不会创建对应的对象,在获取(使用)对象时才去创建对象;AppilcationContext,BeanFactory接口的子接口,提供更多更强大的功能,加载配置文件时就会把配置文件对应的对象进行创建

    AppilcationContext中包含两个实现类:FileSystemXmlApplicationContext,从项目工作路径(即项目的根目录)加载配置文件;ClassPathXmlApplicationContext,默认从项目的classpath下相对路径加载配置文件。

IOC操作-bean管理

bean管理指两个操作:Spring创建对象;Spring注入属性(初始化);
bean管理操作有两种方式:基于xml配置文件方式实现;基于注解方式实现;
基于xml配置文件方式实现:
  • 基于xml方式创建对象;

    在Spring配置文件中,使用bean标签并添加对应属性,实现对象创建。bean标签中的常见属性id(唯一标识)、class(需要被创建类的全路径)、name(与id相似,但id中不可以加特殊符号)等。创建对象时,默认执行无参构造方法。

<bean id="user" class="com.zxc.Spring5.User"></bean>
  • 基于xml方式注入属性;DI,依赖注入,就是注入属性。

    DI是IOC中一种具体实现,就表示依赖注入。一是使用set方法进行注入(设置属性值),另一种使用有参构造进行注入;

<!--使用set方法进行注入--><!--首先,类中要声明了属性的set方法;其次使用此方法之前,对象要被创建--><bean id="user" class="com.zxc.Spring5.User">  <!--name属性表示要注入的属性名--> <property name="name" value="自行车" ></property></bean>
<!--使用有参构造进行注入--><!--类中的构造函数-->public User(String myName, int myAge){ name = myName; age = myAge;}<!--xml配置文件--><bean id="user" class="com.zxc.Spring5.User"> <!--constructor-arg的个数要与构造函数中的参数一致,name属性要与构造函数的参数相同--> <!--还包含index属性,表示该参数在构造方法中的索引值--> <constructor-arg name="myName" value="自行车"></constructor-arg> <constructor-arg name="myAge" value="15"></constructor-arg></bean>

<!--简化 用set方法进行注入 p名称空间注入---><!--首先在xml配置文件中添加p名称空间-->xmlns:p="http://www.springframework.org/schema/p"<bean id="user" class="com.zxc.Spring5.User" p:name="自行车"></bean>
<!--xml注入其他类型属性--><!--字面量--><bean id="user" class="com.zxc.Spring5.User">  <!--①null-->  <property name="name"> <null></null> </property>  <!--②属性值包含特殊字符  a可以通过转义字符 b如下--> <property name="name">    <!--将name设置为<<阿斯达>>--> <value><![CDATA[<<阿斯达>>]]></value> </property> </bean>

以上是关于Spring5框架—2021.2.26的主要内容,如果未能解决你的问题,请参考以下文章

尚硅谷Spring学习笔记-- Spring5新功能

Spring5框架

Spring5框架概述入门案例

《Spring5官方文档》新功能(4,3)

Spring5框架 笔记总结

Spring5框架 笔记总结