Spring基本概念复习以及部分细节

1:Ioc: 控制反转(Inversion of control)
将设计好的类交给系统去控制,而不是在类内部控制,目前有4种类型的Ioc:
Type 0:不用IOC,使用时创建相应的类,比如在构造函数里创建。
Type 1:出现于Avalon Framework。一个组件实现了Servicable接口,就必须实现service方法,并传入一个ServiceManager。其中会含有需要的其它组件。只需要在service方法中初始化需要的Boy。

public class Girl implements Servicable {
Kissable kissable;
public void service(ServiceManager mgr) {
kissable = (Kissable) mgr.lookup(“kissable”);
}
public void kissYourKissable() {
kissable.kiss();
}
}

Type 2:出现在Spring Framework中,通过JavaBean中的set方法,她依赖于配置文件或者注解。
Type 3:通过构造函数传入参数。
2.Dependency Injection:依赖注入
简单来讲,依赖注入实际上是需要通过容器来完成:
1:具体ServiceProvider的创建
2:ServiceUser和ServiceProvider的运行时绑定
一般来讲,容器(Container)提供3种注册和获取的方法:
1:Constructor Injection(构造器注入)
2:Setter Injection(设值注入)
3:Interface Injection(接口注入)---最不优雅

public interface InjectFinder {
void injectFinder(MovieFinder finder);
}


class MovieLister: InjectFinder
{
public void injectFinder(MovieFinder finder) {
this.finder = finder;
}
}

3:Spring Bean初始化顺序
1.构造函数
2.初始化属性
3.如果实现了BeanFactoryAware 接口执行setBeanFactory方法
4.如果实现了InitializingBean 接口执行afterPropertiesSet方法
5.如果在配置文件中指定了init-method,那么执行该方法
6.如果实现了BeanFactoryPostProcessor 接口在 “new”其他类之前执行 postProcessBeanFactory 方法(通过这个方法可以改变配置文件里面的属性值的配置)
7.如果实现了BeanFactoryPostProcessor 接口,那么会在其他bean初始化方法之前执行postProcessBeforeInitialization 方法,之后执行postProcessAfterInitialization方法
4:配置文件中bean标签不常用的方法
1:lazy-init:延迟初始化
2:init-method:初始化方法
3:destroy-method:销毁方法
4:dependes-on:依赖的bean(用来制定bean的初始化顺序)
5.AOP: 面向方面编程(Aspect Oriented Programming)
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。
Aspect是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。从关注点中分离出横切关注点是面向侧面的程序设计的核心概念。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题的代码调用,业务逻辑同特定领域问题的关系通过侧面来封装、维护,这样原本分散在整个应用程序重的变动可以很好的管理起来。
AOP应用范围
  很明显,AOP非常适合开发J2EE容器服务器,目前JBoss 4.0正是使用AOP框架进行开发。
  具体功能如下:
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging  调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence  持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
AOP联盟提到的AOP技术:
AspectJ:源代码和字节码级别的编织器,用户需要使用不同于Java的语言。
AspectWerkz:AOP框架,使用字节码动态编织器和XML配置。
JBoss-AOP:
BCEL:
Javassist:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值