Spring

Posted 小企鹅推雪球!

tags:

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

Spring框架概述

  1. spring是轻量级的开源JavaEE框架
  2. Spring可以解决企业应用开发的复杂性
  3. Spring有两个核心部分 :IOC和AOP
    1. IOC:控制反转,把创建对象过程交给Spring进行管理
    2. Aop;面向切面,不修改源代码进行功能增强

Spring框架特点

  1. 方便解耦,简化开发
  2. Aop编程支持
  3. 方便程序测试
  4. 方便和其他框架进行整合
  5. 方便进行事务操作
  6. 降低API开发难度

Spring-IOC容器详解

第一:什么是IOC?

  1. IOC是控制反转,减低代码之间的耦合度,将对象的创建和对象之间的调用的过程,交给Spring进行管理

第二:IOC底层原理

  1. XML解析,工厂模式和反射
  2. IOC解耦的步骤
    1. 第一步:创建XML配置文件,配置创建对象

    2. 第二步:有service 类和dao类,创建工厂类

IOC接口

  1. IOC思想基于IOC容器完成,IOC容器底层是对象工厂
  2. Spring提供了IOC容器实现的两种方式:
    1. BeanFactory:IOC容器最基本的实现方式,是Spring内部的使用接口,在开发中一般不使用
    2. ApplicationContext::BeanFactory接口的子接口,在开发中使用,功能更强大
    3. BeanFactory特点:在加载配置文件的时候,不会创建对象,在获取对象(使用对象时)才会创建对象
    4. ApplicationContext特点:在加载配置文件的时候就会将配置文件中对象进行创建
  3. ApplicationContext接口的主要实现类:
    1. File需要写配置文件的盘符路径
    2. Class表示配置文件的当前目录下的配置的路径(不用写全)

IOC操作-Bean管理

  1. 什么是Bean管理:指两个操作
    1. 第一Spring创建对象
    2. 第二Spring注入属性
  2. Bean管理操作的两种实现方式
    1. 基于xml配置文件实现Bean管理
      1. 基于xml方式创建对象

        1. 在spring配置文件中,使用bean标签,标签里添加对应属性,可以实现对象创建
        2. 在bean标签中的常用属性
        1. id属性,表示当前对象的唯一标识
        2. class属性:标识类的全路径,即包类的路径
        3. 创建对象的时候会默认执行无参数构造方法完成对象创建
      2. 基于xml方式注入属性
        1. DI:是依赖注入,就是注入属性(set方法注入,有参构造参数注入)
          1. 第一种注入方式;使用set方法进行注入

            /**
            * 演示使用 set 方法进行注入属性
            */
            public class Book {
             //创建属性
             private String bname;
             private String bauthor;
             //创建属性对应的 set 方法
             public void setBname(String bname) {
             this.bname = bname;
             }
             public void setBauthor(String bauthor) {
             this.bauthor = bauthor;
             }
            }
            
          2. 在spring配置文件配置对象创建,配置属性注入

            <!--2 set 方法注入属性-->
            <bean id="book" class="com.atguigu.spring5.Book">
             <!--使用 property 完成属性注入
             name:类里面属性名称
             value:向属性注入的值
             -->
             <property name="bname" value="易筋经"></property>
             <property name="bauthor" value="达摩老祖"></property>
            </bean>
            

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

Spring boot:thymeleaf 没有正确渲染片段

What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

Spring Rest 文档。片段生成时 UTF-8 中间字节无效 [重复]

解决spring-boot启动中碰到的问题:Cannot determine embedded database driver class for database type NONE(转)(代码片段

一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式