学习Spring源码(1)

本文详细介绍了Spring框架的核心概念,包括轻量级、面向bean、松耦合的特点,并深入探讨了依赖注入和面向切面编程(AOP)的概念及其实现方式。

一、Spring 是什么?

1、轻量级 :api 使用简单

2、面向bean :只需要编写简单的bean,bean是什么?bean就是java对象;

3、松耦合:利用AOP思想

4、万能胶

5、设计模式

spring 是为解决企业级应用开发的复杂性而设计,最根本的使命,就是简化开发;

1.基于pojo的轻量级和最小侵入性编程;

2.通过依赖注入和面向接口松耦合;

3.基于切面和惯性进行声明式编程;

4通过切面和模板减少样板式代码;

主要通过面向bean、依赖注入以及面向切面这三种方式来达成;

怎么样使一个类作为一个公用的几种方法?

1、打个jar包、具体就是继承这个类;

2、将这个类做为成员变量,放到类里面声明;

Spring 只要声明;

二、面向bean

Spring是面向bean的编程;Spring提供了IOC容器通过配置文件或者注解的方式来管理对象之间的依赖关系;

(1)、依赖注入:
public class Note{
    private int a;
    private int b;
   
    public void execute(){}
}
// 实例化以后用一个变量保存下来(匿名对象)
@autowite Note note; // Spring 初始化,实例化(控制权)
// 一定要初始化才行,报空指针异常
note.execute();
//实现依赖注入 (赋值:把等号右边的赋值给左边的)
@autowrite InterfaceA a; //自动把它的实现类注入进来
@Resource("a") A b;    //IOC容器中类的id为a对象自动注入到这里(可以区分父子类)
@autowrite A a;          //根据类型自动注入;
(2)Spring的注入方式:
1 setter
2 构造方法
3 强制赋值  如: @autowrite private InterfaceA a;

// 下面情况实例化的先后顺序 b、a、c ;
//依赖链中的所有对象,ioc容器里面初始化;实例化spring就帮完成
class C {
   private A a;
   public void func(){
      
   }
}
class A{
     private B b;
}

(3).理解AOP的看透弄懂AOP

Spring是一个库,它的功能是提供了一个软件框架,这个框架目的是使软件之间的逻辑更加清晰,配置更灵活,实现这个目的的手段使用AOP和IoC,而AOP和IoC是一种思想,是一种什么样的思想呢?先说AOP在Java里是利用反射机制实现(也可以认为是动态代理,不过动态代理也是反射机制实现的),如何使用AOP呢

AOP的本质是在一系列纵向的控制流程中,把那些相同的子流程提取成一个横向的面;

1、面向切面
aop的核心构造是方面(切面),它将那些影响多个类的行为封装到可重用的模块中;

aop的功能完全集成到了spring事物管理、日志和其他各种特征的上下文中;


在应用中哪些应用了面向切片编程?

Authentioncation权限认证
Logging 日志
Transctions Manager 事物
Lazy Loading 懒加载
Context Process 上下文处理
Error Handler 错误跟踪 异常捕获机制
cache 缓存处理


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ITdada

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值