1.1.spring源码学习1

spring的核心宗旨—简化开发
AOP的核心宗旨—–解耦
1.轻量级
零配置编程、API使用简单
spring立志于全方面简化java开发。对此她主要采取了4个关键策略
1.1基于pojo的轻量级和最小侵入性编程(你中有我,我中有你);
1.2通过依赖注入DOP和面向接口松耦合
1.3基于切面和惯性进行声明式编程
1.4通过切面和模板减少样板式代码

2.面向Bean
只需要编写非常普通的Bean
IOC控制反转(容器)
@Autowired //Spring初始化、实例化(new出来)(控制权)
然后存储到容器中
IOC容器(存的是java bean)
web容器是用来装servlet的

目的是为了实现依赖注入DI,注入了才能用
@Autowired InterfaceA a 自动把他的实现类注入进来
@Resource(“aaa”) A b;IOC容器中名称为aaa的对象自动注入到这里(可以区分父子类–可以把子类注入到这里)

spring的注入方式
1、setter
2、构造方法
3、强制赋值(就算是private也可以赋值)

依赖链中所有的对象,ioc容器里面初始化
下面代码的实例化顺序为 b a c
class C{
private A a;
public void func(){
a.xxx();
}
}
class A{
private B b;
}

3.松耦合
充分利用AOP面向切面编程思想
先把一个整体拆了,然后分别开发,最后再整合起来
AOP的核心思想–解耦合
面向切面编程—-他将那些影响多个类的行为封装到可重用的模块中
AOP的功能完全集成到了spring事务管理、日志和其他各种特性的上下文中
包括
Authentication 权限认证
Logging 日志
Transctions Manager事务管理
Lazy Loading 懒加载
context process上下文处理
error handler 错误跟踪(异常捕获机制)
cache 缓存

4.万能胶
与主流框架无缝集成

5.设计模式
将java中经典的设计模式运用的淋漓尽致
5.1代理模式
特点:
1.执行者、被代理人
2.对于被代理人来说,这件事是一定要做的,但是我自己又不想做或者没有时间做,找代理
3.需要获取到被代理的人个人资料
静态代理、动态代理
JDK动态代理;
CGLIB动态代理
cglib.jar (全程Code Generation Library代码生成库)
asm.jar (全称assembly,装配)

5.2工厂模式
简单工厂、工厂方法、抽象工厂

5.3单例模式 保证从系统启动到系统停止,全过程只会产生一个实例

5.4委派模式:1、类似于中介的功能(委托机制);2、只有被委托人的引用。
要和代理模式区分开来

5.5策略模式:1、过程不同,但结果一样。

5.6原型模式:1、过程相同,但结果不一样。或者叫模板模式(提高开发效率)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值