spring入门

114 阅读5分钟
  • Spring框架概述

  • 1.Spring是轻量级的开源的Javaee框架

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

  • 3.Spring有两个核心部分:ioc,aop

    • IOC:控制反转,把创建对象过程交给Spring进行管理
    • AOP:面向切面,不修改源代码的情况下对目标方法进行功能增强
  • 4.Spring特点

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

IOC(概念和原理)

  • 1.什么是IOC:
    • 控制反转,把创建对象和对象之间的调用过程,交给Spring进行管理
    • 使用IOC目的:为了降低耦合度
  • 2.IOC底层原理: xml解析,工厂模式,反射

IOC底层实现原理

IOC(接口)

  • IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
  • Spring提供的IOC实现两种方式:(两个接口)
    • BeanFactory:IOC容器基本实现,是Spring内部使用的接口,不提供开发人员进行使用,加载配置文件时不会创建对象,在获取对象(使用)时才会创建对象
    • ApplicationContext:BeanFactory子接口,提供更强大的功能,一般由开发人员进行使用,当bean为单例,加载配置文件时就会把在配置文件中的对象进行创建放在ioc容器中,当bean为多例时,在获取对象(使用)时才会创建对象
  • ApplicationContext的实现类

IOC操作bean管理

  • 1.什么是Bean管理:
    • Spring创建对象
    • Spring注入属性
  • 2.IOC操作Bean管理操作有两种实现方式:
    • 基于xml配置文件方式
    • 基于注解方式

IOC操作Bean管理(基于xml)

  • 基于xml方式创建对象
    • 1.在spring配置文件中,使用bean标签,标签里面添加对应的属性,就可以实现对象的创建
    • 2.在bean标签中有很多属性:id属性:唯一标识class属性:类全路径
    • 创建对象时,默认是执行无参构造方法完成对象的创建

基于xml方式注入属性

  • DI:依赖注入,就是注入属性(创建对象的基础上)

    • 第一种注入方式:使用set方法进行注入,
      • 使用property标签完成注入(name:类属性名称,value:向属性注入的值)
    • 第二种注入方式:使用有参构造器进行注入
      • 使用constructor-arg标签完成注入(name:类属性名称,value:向属性注入的值)
    • p名称空间注入

setter方法注入

有参构造器注入

p名称空间注入

XML注入其他属性值

  • 1.字面量:
    • null值:
    • 属性值包含特殊符号:
  • 2.注入外部bean
  • 3.注入数组类型(可用array标签也可用list标签)
  • 4.注入list集合
  • 5.map集合注入
  • 6.set集合注入
  • 7.list集合注入值是对象

FactoryBean(Spring有两种类型bean,一种普通的bean,另外一种工厂bean(FactoryBean))

  • 普通bean:注入ioc的类型和配置文件中定义bean的类型一样
  • 工厂bean:注入ioc的类型可以和配置文件中定义bean的类型不一样:
    • 1.创建类,让这个类作为工厂bean,实现接口FactoryBean
    • 2.实现接口里的方法,在实现的方法中定义返回的bean的类型

bean作用域

  • 在spring里面,设置创建bean实例是多实例还是单实例
  • 在Spring中,默认下,bean是单实例对象
  • 如何设置单实例还是多实例
    • 在spring配置文件bean标签里面有属性(scope)用于设置单实例还是多实例。
    • scope属性值:singleton(单实例,默认值),prototype(多实例),request(不常用),session(不常用)
  • singleton和prototype区别
    • 单实例,多实例
    • 当是单实例的bean时,spring在加载配置文件时就会创建该对象
    • 当时多实例的bean时,spring在加载配置文件时不会创建该对象,在需要用到该对象的时候,再创建该对象实例

bean生命周期

  • 生命周期:从对象创建到对象销毁的过程
  • bean的生命周期
    • 1.通过构造器创建bean实例(默认无参构造器)
    • 2.为bean的属性设置值和对其他bean的引用(调用set方法)
    • 3.把bean实例传递bean后置处理器(实现BeanPostProcessor)的方法postProcessBeforeInitialization(添加后置处理器效果)
    • 4.调用bean的初始化方法(需要进行配置–bean标签中的init-method属性)
    • 5.把bean实例传递bean后置处理器(实现BeanPostProcessor)的方法postProcessAfterInitialization(添加后置处理器效果)
    • 6.bean可以被使用(对象获取到)
    • 7.当容器关闭,调用bean的销毁方法(需要进行配置–bean标签中的destroy-method属性)

实现自动装配

  • bean标签属性autowire(其使用的注入技术是setter方法或是构造方法),配置自动装配
  • autowire属性常用两个值:
    • byName:根据属性名注入,注入值bean的id和类属性名称一样
    • byType:根据类型注入

spring引入外部属性文件(jdbc.properties)

  • 1.spring配置文件中引入context命名空间
  • 2.添加标签<context:property-playceholder location=”文件路径”/>
  • 3.使用${key}来取出配置文件中的值

IOC操作Bean管理(基于注解)

  • 1.什么是注解
    • 1.注解是代码的特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值…)
    • 使用注解,注解作用在类上面,方法上面,属性上面
    • 使用注解目的:简化xml配置
  • 2.Spring针对Bean管理中创建对象提供注解
    • @Component
    • @Service
    • @Controller
    • @Repository
    • 上面四个注解功能一样,都可以用来创建bean实例
  • 3.基于注解方式实现对象创建
    • 1.引入依赖
    • 2.开启组件扫描(扫描多个包,可永逗号隔开)
    • 3.创建类,在类上面添加创建对象注解
      • 注解里面value属性值(对应bean标签中的id属性)可以省略不写(默认是类名称,首字母小写)

spring集成web

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 12 天,点击查看活动详情