Spring学习


前言

本博客仅做学习笔记,如有侵权,联系后即刻更改

科普:


简介

Spring官方下载地址
maven地址

历史

  • 2002年,首次推出了Spring框架的雏形:interface21框架
  • 2004年正式推出1.0正式版Spring
  • Rod Johnson:Spring Framework创始人,悉尼大学音乐学博士
  • 设计理念:是现有的技术更加容易使用,结合现有的技术框架

SSH:Struct2 + Spring + Hibernate
SSM:SpringMvc + Spring + Mybatis

优点

  • 开源的免费框架(容器)
  • 轻量级、非入侵式框架
  • 控制反转(IOC)、面对切面编程(AOP)
  • 支持事务的处理、对框架整合的支持

七大核心模块

在这里插入图片描述

拓展

Spring Boot

  • 一个快速开发的脚手架
  • 基于Spring Boot可以快速的开发单个微服务
  • 约定大于配置

Spring Cloud

  • 基于Spring Boot实现

IOC(控制反转)

获得依赖对象的方式反转

定义

控制反转是一种通过描述并通过第三方去上产或获取特定对象的方式。spring中实现控制反转的是IOC容器,其实现方式是依赖注入(set)

DI(依赖注入)是实现IOC的一种方法

IOC创建对象的方法

  1. 使用无参构造(默认)
  2. 下标赋值
  3. 类型
  4. 参数名

bean相关属性

  • id: bean的唯一标识符
  • class: bean对象所对应的 包名+类型
  • name: 别名
  • scope: 作用域

注入方式

  • 构造器注入
  • set方式注入
  1. 值注入
    value = ‘’
  2. Bean注入
    ref = ‘’
  3. 数组
    array标签下写value标签
  4. list
    list标签下写value标签
  5. map
    map标签下写entry标签的key、value
  6. set
    set标签下的value
  7. null
    null标签
  8. properties
    props标签下的prop标签,key属性
  • 拓展方式注入
    p、c命名空间使用需要导入xml约束
  1. p命名空间注入
    直接注入属性的值:property
  2. c命名空间注入
    通过构造器注入:construct-args

Bean的作用域(scope)

  1. 单例模式(默认机制)

scope = “singleton”

  1. 原型模式

每次从容器中get时,产生一个新对象
scope = “prototype”

  1. request、session、application这些只能在web开发中使用到

Bean的自动装配

Spring满足bean依赖的方式,在上下文中自动寻找和装配

装配方式

  1. xml中显示配置
  2. java中显示配置
  3. 隐式自动装配
    autowire

属性

  1. byname:自动在容器上下文查找,和自己对象set方法后面的值对应的beanid
  2. bytype:和自己对象属性类型(class)的相同bean,但不能有重复

使用注解自动装配
jdk1.5和Spring2.5以上支持注解

  1. 导入约束:context约束
  2. 打开注解的支持
<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

//打开支持
    <context:annotation-config/>

</beans>

相关注解

@Nullable

  • 字段可为空
    @Qualifiler
  • 搭配@autowire使用
    @Resource
  • 和@Autowired对比

都是自动装配,放在属性字段上

  • @Autowired通过bytype的方式实现,对象必须存在
  • @Resource默认通过byname方式实现
    如果找不到则通过bytype实现

使用注解开发

Spring4后,使用注解开发,必须保证aop的包导入
使用注解需要导入context约束,并增加注解驱动
使用scan可以指定包的注解使用
  1. bean

@Component:组件,等价于@Controller
spring会创建一个对象,对象名为类名首字母小写

  • 等价于bean id=“” class=“”/>
  • 放在类上,说明这个类被Spring管理,就是bean
  1. 属性注入

@Value(“”)

  • 等价于property name=“” value=“”/>
  • 简单的类
  1. 衍生的注解
  2. 自动装配
  3. 作用域
  4. 小结

总结

小小励志

有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值