一、Spring 是什么?
1、轻量级 :api 使用简单
2、面向bean :只需要编写简单的bean,bean是什么?bean就是java对象;
3、松耦合:利用AOP思想
4、万能胶
5、设计模式
spring 是为解决企业级应用开发的复杂性而设计,最根本的使命,就是简化开发;
1.基于pojo的轻量级和最小侵入性编程;
2.通过依赖注入和面向接口松耦合;
3.基于切面和惯性进行声明式编程;
4通过切面和模板减少样板式代码;
扫描二维码关注公众号,回复:
1829648 查看本文章
主要通过面向bean、依赖注入以及面向切面这三种方式来达成;
怎么样使一个类作为一个公用的几种方法?
1、打个jar包、具体就是继承这个类;
2、将这个类做为成员变量,放到类里面声明;
Spring 只要声明;
二、面向bean
Spring是面向bean的编程;Spring提供了IOC容器通过配置文件或者注解的方式来管理对象之间的依赖关系;
(1)、依赖注入:
public class Note{
private int a;
private int b;
public void execute(){}
private int a;
private int b;
public void execute(){}
}
// 实例化以后用一个变量保存下来(匿名对象)
@autowite Note note; // Spring 初始化,实例化(控制权)
// 一定要初始化才行,报空指针异常
note.execute();
// 一定要初始化才行,报空指针异常
note.execute();
//实现依赖注入 (赋值:把等号右边的赋值给左边的)
@autowrite InterfaceA a; //自动把它的实现类注入进来
@Resource("a") A b; //IOC容器中类的id为a对象自动注入到这里(可以区分父子类)
@autowrite A a; //根据类型自动注入;
@autowrite InterfaceA a; //自动把它的实现类注入进来
@Resource("a") A b; //IOC容器中类的id为a对象自动注入到这里(可以区分父子类)
@autowrite A a; //根据类型自动注入;
(2)Spring的注入方式:
1 setter
2 构造方法
3 强制赋值 如: @autowrite private InterfaceA a;
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;
}
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 缓存处理