spring学习记录(一)
一、spring概述
spring是什么
Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多
著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架Spring 的两大核心
IOC和AOP
Spring的发展历程和优势
1997 年 IBM提出了EJB 的思想
1998 年,SUN制定开发标准规范 EJB1.0
1999 年,EJB1.1 发布
2001 年,EJB2.0 发布
2003 年,EJB2.1 发布
2006 年,EJB3.0 发布
Rod Johnson(spring之父)
Expert One-to-One J2EE Design and Development(2002)
阐述了 J2EE 使用EJB 开发设计的优点及解决方案
Expert One-to-One J2EE Development without EJB(2004)
阐述了 J2EE 开发不使用 EJB的解决方式(Spring 雏形)
2017 年 9 月份发布了 spring 的最新版本 spring 5.0 通用版(GA)
Spring的体系结构
Spring data,web,core,test…
二、程序的耦合和解耦
耦合:程序间的依赖关系。
包括:类之间的依赖关系和方法之间的依赖。
解耦:降低程序间的依赖关系。
实际开发中应该做到:编译期不依赖,运行时才依赖。
解耦的思路:
第一步:使用反射来创建类对象,而避免使用new关键字。
第二步:通过读取配置文件来获取要创建的对象全限定类名
spring学习记录(一)相关推荐
- 我的Spring学习记录(二)
本篇就简单的说一下Bean的装配和AOP 本篇的项目是在上一篇我的Spring学习记录(一) 中项目的基础上进行开发的 1. 使用setter方法和构造方法装配Bean 1.1 前期准备 使用sett ...
- Spring学习记录(九)---通过工厂方法配置bean
1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. 1 package com.guigu.spring.factory; 2 3 public c ...
- Spring 学习记录 冷兵器时代的故事
这篇文章的内容和 Spring 没什么关系,但还是分类到 Spring 学习了. 首先,我们来将一个故事. 很久很久以前,冷兵器时代,人们用弓和箭打仗. 版本1 public class BowAnd ...
- Spring学习记录
Spring相关 目录 文章目录 Spring相关 目录 前言 工厂设计模式 静态工厂模式 通用工厂模式 ApplicationContext ClassPathXmlApplicationConte ...
- SSM之Spring学习记录
文章目录 IoC--把类告诉spring,让spring在你需要的时候创建相关类的对象 环境搭建 创建对象的三种方式 给Bean进行属性注入 DI(依赖注入) Spring 简化 mybatis AO ...
- Spring学习记录-Java 11运行eureka-server报javax.xml.bind.JAXBContext not present错
在pom.xml加入依赖就行 <dependency><groupId>org.glassfish.jaxb</groupId><artifactId> ...
- springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...
- Redis的学习记录
Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...
- php+打开文件和其子文件,【php学习记录】 引用、打开文件
[php学习记录] 引用.打开文件 一.PHP echo 和 print 语句 echo 和 print 区别: echo - 可以输出一个或多个字符串 print - 只允许输出一个字符串,返回值总 ...
最新文章
- 特殊时期之下的 AI 成功“逆行”,技术繁荣生长之下的“AI隐疾”
- 20150901-Linux磁盘管理及文件系统管理
- LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)
- css 弹性盒子200304
- Spring Bean的生命周期(非常详细)
- php邮件html模板下载,PHP Mailer与HTML模板和发送变量
- Github | 商汤出品-可在视频里追踪单个对象PySOT
- SpringBoot2.0之六 多环境配置
- ajax的typeAMDAt,ajax的运用
- Silverlight 2动态创建矩形对象(附完整源代码)
- WF的性能特征(一)
- c++ 检查远程主机端口_漏洞通告:Windows RDP服务远程代码执行漏洞通告(CVE-2019-0708)...
- macos同时运行多个版本php程序(nginx+php56+php72)
- 刘小瑜 大数据与人工智能论文
- Python使用pip安装报错ModuleNotFoundError: No module named ‘pip._internal.cli.main‘的解决方法
- 详解Po.et 技术栈
- 串口通信——S5PV210串口通信接口详解
- HaaS UI小程序解决方案基础教学之二: 搭建第一个UI页面
- 如何把InputStream字节流和InputStreamReader字符流转换成我们能看懂的String字符串
- 如何在零件层隐藏/显示SOLIDWORKS尺寸?
热门文章
- qemu 规范路径_基于qemu-riscv64模拟器运行debian
- 数据分析究竟在分析什么?
- 单页面 Web 应用(Single Page Application,SPA)的工作原理介绍
- SAP Spartacus B2B Unit page Expand all按钮的工作原理
- rxjs里mapTo operators的用法
- Angular DefaultDomRenderer2.setProperty - HTML的值是如何从Angular Component flow过来的,以及跨平台支持
- Angular里使用createEmbeddedView的单步调试
- SAP ABAP里存在Java List这种集合工具类么?CL_OBJECT_COLLECTION了解一下
- 微软Azure storage account的connection string
- how is certificate request sent from C4C to kyma