〇、概述

1、常用资料

2、组成

一、控制反转与依赖注入

(一)Spring概述

1、介绍

以IOC和AOP为内核的框架

通过IOC实现控制,使用spring创建对象,与DI描述同一个概念

DI是对象的属性,注入好值,直接使用

2、目录结构

60个jar文件,分三类:class文件,javadoc文档,sources框架源文件

4个模块

core核心工具类

beans所有应用都用到的jar包

context是IOC功能上的扩展服务和企业级服务(如EJB或JNDI)

expression定义表达式语言

(二)控制反转与依赖注入

1、IOC

从IOC容器中关联对象类【通过容器控制应用程序】

创建对象交给IOC容器处理,颠倒控制权,实现控制反转

2、DI

应用程序依赖容器创建并注入所需要的外部资源

3、IOC/DI的实现

(1)Spring核心容器

最基本和最重要的包:BeanFactory&ApplicationFactory

Beans

管理bean的配置文件:applicationContext.xml等,配置bean和内部的属性

BeanFactory工厂模式,可以读取bean的配置文件,通过getBean可以生成bean的对象

ApplicationContext:可以读取文件系统、web系统或类路径

(2)IOC/DI的实现方式

动态注入bean组件中的方式:属性setter方法(添加setter方法)或构造方法(ref="")注入

二、Bean

1、Bean的配置

<bean><property>

2、Bean的作用域

作为bean标签中的一个属性

共7种,最常见的是singleton单例作用域和prototype原型作用域

singleton单例作用域:始终指向同一个对象,是spring默认的作用域

prototype原型作用域:每次创建一个新的bean实例

3、Bean的装配方式

(1)基于XML的装配

两种方式:设置注入(bean中的property)和构造注入(constructor-arg)

(2)基于注解的装配

常用注解:

@Component:泛化方式描述bean

@Repository:数据访问层DAO层的类标识为bean

@Service:业务层的类标识为bean

@Controller:将控制层的类标识为Spring中的Bean

@Autowired:标注对应的变量、方法,完成Bean的自动配置工作【按照Bean类型装配】

@Resource:作用与@Autowired相同【按照Bean的实例名称进行装配】【需要注入的类中注入,写autowired或resource注解标识从哪个bean中拿到】

@Qualifier:与@Autowired注解配合使用,将@Autowired默认的Bean类型装配修改为按Bean的实例名称装配

配置:

基本方式:按照bean的实例进行配置

高效方式:对包内的所有Bean文件进行扫描,配置-<context: component-scan base-package="Bean所在的包路径">

(3)自动装配

三、AOP

四、数据开发

五、事务管理

最新文章

  1. C# EasyUI树形结构权限管理模块
  2. 《程序设计教学法--以Java程序设计为例》
  3. Android 5.x特性概览一
  4. git init
  5. CString常用操作
  6. Python 用IMAP接收邮件
  7. SpringMVC 自定义全局日期转换器
  8. LINUX 硬盘分区及文件系统
  9. Linux SendMail发送邮件失败诊断案例(四)
  10. 我喜欢的vs code快捷键for mac
  11. 关于如何在电脑上安装adb来操作手机(Android)的方法及步骤
  12. c++11新标准for循环和lambda表达式
  13. vue router 根据不同的id切换链接界面不刷新
  14. Servlet随笔
  15. rabbitmq启动异常table_attributes_mismatch
  16. 编译你的第一个Java虚拟机--Centos 7 编译openJdk1.7源码
  17. python --葵花宝典
  18. Intro.js的简介和用法
  19. KVC简介 -字典转模型,模型转字典
  20. JS数组中级+高级技巧

热门文章

  1. 使用KVM的命令行方式安装centos7虚拟机
  2. 在 CentOS 8/RHEL 8 上安装和使用 Cockpit
  3. 基于python的RSA解密算法
  4. 线程池底层原理详解与源码分析(补充部分---ScheduledThreadPoolExecutor类分析)
  5. WMS 相比于 ERP 系统有哪些优势?
  6. css事件穿透
  7. 洛谷P2367 语文成绩(差分)
  8. Docker 部署 Kibana
  9. 备份 MySQL 的 shell 脚本(mysqldump版本) shell脚本
  10. MySQL的日志文件