前言
本博客仅做学习笔记,如有侵权,联系后即刻更改
科普:
简介
历史
- 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创建对象的方法
- 使用无参构造(默认)
- 下标赋值
- 类型
- 参数名
bean相关属性
- id: bean的唯一标识符
- class: bean对象所对应的 包名+类型
- name: 别名
- scope: 作用域
注入方式
- 构造器注入
- set方式注入
- 值注入
value = ‘’- Bean注入
ref = ‘’- 数组
array标签下写value标签- list
list标签下写value标签- map
map标签下写entry标签的key、value- set
set标签下的value- null
null标签- properties
props标签下的prop标签,key属性
- 拓展方式注入
p、c命名空间使用需要导入xml约束
- p命名空间注入
直接注入属性的值:property- c命名空间注入
通过构造器注入:construct-args
Bean的作用域(scope)
- 单例模式(默认机制)
scope = “singleton”
- 原型模式
每次从容器中get时,产生一个新对象
scope = “prototype”
- request、session、application这些只能在web开发中使用到
Bean的自动装配
Spring满足bean依赖的方式,在上下文中自动寻找和装配
装配方式
- xml中显示配置
- java中显示配置
- 隐式自动装配
autowire
属性
- byname:自动在容器上下文查找,和自己对象set方法后面的值对应的beanid
- bytype:和自己对象属性类型(class)的相同bean,但不能有重复
使用注解自动装配
jdk1.5和Spring2.5以上支持注解
- 导入约束:context约束
- 打开注解的支持
<?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可以指定包的注解使用
- bean
@Component:组件,等价于@Controller
spring会创建一个对象,对象名为类名首字母小写
- 等价于bean id=“” class=“”/>
- 放在类上,说明这个类被Spring管理,就是bean
- 属性注入
@Value(“”)
- 等价于property name=“” value=“”/>
- 简单的类
- 衍生的注解
- 自动装配
- 作用域
- 小结
总结
小小励志
有些事你现在不做,一辈子都不会做了。
如果你想做一件事,全世界都会为你让路。
《搭车去柏林》