Spring3学习
2020-03-05 11:02:57 0 举报
AI智能生成
spring介绍
作者其他创作
大纲/内容
基本概念
是什么
是基于java/javaEE轻量级的应用框架
非侵入式
能干什么
概要:能把很多技术集成到一起
体现了一些体系结构设计的理念
稍微详细
IOC//DI
AOP
对JDBC和ORMapipng的支持
事务
集成其他技术,最典型的的就是SSH
SpringMVC
其他技术:Spring Security、webflow...
3:屏蔽不同的数据库
4:为何要学Spring
有什么
Spring2.x
Spring3.x
多了:EL、OXM。。
但是主体功能差不多,只不过模块划分不一样
3:ConnectionProvder
为何需要Spring
应用程序
是能完成我们所需要功能的成品,比如购物网站、OA系统。
框架
是能完成一定功能的半成品,比如我们可以使用框架进行购物网站开发;
框架做一部分功能,我们自己做一部分功能,这样应用程序就创建出来了。
而且框架规定了你在开发应用程序时的整体架构,提供了一些基础功能,
还规定了类和对象的如何创建、如何协作等,从而简化我们开发,让我们专注于业务逻辑开发。
非侵入式设计
从框架角度可以这样理解,无需继承框架提供的类,这种设计就可以看作是非侵入式设计,
如果继承了这些框架类,就是侵入设计,
如果以后想更换框架之前写过的代码几乎无法重用,如果非侵入式设计则之前写过的代码仍然可以继续使用。
轻量级及重量级
轻量级是相对于重量级而言的,轻量级一般就是非入侵性的、所依赖的东西非常少、资源占用非常少、部署简单等等,其实就是比较容易使用,而重量级正好相反。
POJO
POJO(Plain Old Java Objects)简单的Java对象,它可以包含业务逻辑或持久化逻辑,但不担当任何特殊角色且不继承或不实现任何其它Java框架的类或接口。
容器
在日常生活中容器就是一种盛放东西的器具,从程序设计角度看就是装对象的的对象,因为存在放入、拿出等操作,所以容器还要管理对象的生命周期。
控制反转
即Inversion of Control,缩写为IoC,控制反转还有一个名字叫做依赖注入(Dependency Injection),就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。
Bean
一般指容器管理对象,在Spring中指Spring IoC容器管理对象。
如何学好
IOC/DI
基本概念
是什么
IOC
DI
他两的关系
描述他们的过程
有什么
容器
组件
配置文件
对他们的理解
对I控制反转的理解
谁控制谁
控制什么
为何叫反转
在哪些方面反转了
为何需要反转
对依赖的理解
什么是依赖,按动词,名词
谁依赖谁
依赖什么
为什么需要依赖
对注入的理解
谁注入谁
注入什么
为什么要注入
对依赖注入依赖的理解
他们的异同
参与者
他们的使用
能干什么
怎么用
用在什么地方
对外部资源的理解
体会主从换位的思想
了解应用开发IOC/DI的变化
对IOC容器的理解
能干什么
HelloWorld
去应用程序的需要的对象
跟写Java普通对象的写法一样
为Spring写配置文件
bean元素name,class
客户端通过Spring获取需要的接口对象
读取配置文件,创建Application对象
使用context来获取所需要的bean
再把获取的对象造型成为需要的接口对象
使用这个API来进行操作
运行流程
基本配置
如何实例化容器
3种方法
读取多个配置文件
实际开发中怎么分文件,怎么命名
bean重名,如何处理
配置文件和容器的关系,原理图
1:读一次配置文件,就创建一个容器
2:在每一个容器里面,管理着这一次读取的配置文件里面配置的bean
3:应该读取一次配置文件,创建一个容器
配置
1:要配什么
1:类
2:行为
3:参数
4:关系
2:如何初始化bean
1:调用构造器
2:静态工厂方法
3:实例化工厂方法
3:依赖注入
1:setter
程序中的写法
配置文件的写法
他们之间的对应关系
2:构造器
4种匹配方式
顺序
类型
索引
名称
3:选择
4:idref
用来传递Bean的id,是一个字符串,而不是Bean
Bean,local
5:ref
bean,local
传递的是Bean对象
6:传入基本量
基本数据类型和String
7:内部Bean
8:集合的配置
list
properties
set
map
集合的合并
9:null
10:depends-on
了解自动装配
了解依赖检查,3里面没有了
Bean的作用域
Singleton
一个容器内单例
创建容器时就初始化
如果Bean不指定作用域默认是Singleton
Prototype
每次操作的时候(每次去获取Bean的时候),就新建一个实例
创建容器时不会初始化
分支主题
方法注入
编程的写法:抽象类,抽象方法
配置lookup-method
适应范围:
生命周期
对生命周期的认识,是回调
Bean的初始化顺序
类的初始化
资源注入
回调方法
init,destroy
写法两种
实现Spring接口
配置文件里的设置,init-method,destroy-method
ApplicationContext
国际化
如何写properties文件,带中文要成转unicode
如何配置
Bean的名称MessageResource不能改,因为他由Spring使用
这个属性也不能改,这个类它是由Spring提供的
真正国际化的文件,只需配文件名称头就可以
如何调用
第一个参数:key
第二个参数:传入给properties文件的参数,是一个Object[],对应到propertIes文件里面,从0开始,语法是(0)
第三个参数:缺省值
第四个参数:通过切换local,来自动选择哪一个properties文件
如何注入国际化资源
读取资源
直接使用context的API来读,Resource来获取inputstream
把Resource当作Bean来注入
事件传播
总的listener
写法:实现接口
配置:直接配置成一个Bean,不需要主动调用,调用由Spring自动在事件产生时候调用
Web中的使用
在Web.xml中配置
Listener
Context-param
AOP
是什么
(Aspect Oriented programming)
AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)
范式
规范,范例
编程范式
相对于编程思想、处理方法、方式上进行指导,尽量遵守
OOP为主,OOP为有益的补充
构建软件的体系的时候,默认是由上层依赖下层,一个模块的内部,也是上层依赖下层
使用OOP设计的时候,一般是上下思考方式
换另外一个角度,来思考程序,就能够发现不同模块拥有很多相同的功能
如何处理不同模块拥有共同功能?
AOP是一种用来帮助我们解决横切关注点(我们关注多个模块多个公共功能)模块化的编程范式
以前:由应用程序主动调用公共的模块
缺点
应用程序(逻辑部分)和公共模块是一种强耦合的关系
每个应用程序都要去添加和对公共模块的调用,增加了很多无味的代码
有什么
关注点
我们关注的公共功能
连接点
需要添加关注点功能的地方,在spring AOP中通常是方法
Advice
关注点功能的实现
Aspect
关注点的模块化
切入点
连接点的集合
目标对象
包含连接点的那些类
AOP Proxy
动态代理的实现
织入
把advice动态填回到连接点的过程
引入
引入新的接口到被代理的对象
AOP流程
0 条评论
下一页