zoukankan      html  css  js  c++  java
  • Atitit.spring体系结构大总结

    Atitit.spring体系结构大总结

    1. Srping mvc 1

    2. Ioc 4

    3. ApplicationContextBeanFactory的基础上构建,差别 4

    4. Aop 5

    5. 3.2.4.1. @AspectJ形式的SpringAOP 5

    6. spring的定时器 6

    7. spring的事务处理 6

    8. springstruts的整合 6

    9. springhibernate的整合 6

    10. spring的持久层封装 使用jdbctemptate訪问数据 6

    11. 2.3.1.3.7. 方法注入(Method Injection) 偷梁换柱之术 6

    12. 国际化信息支持(I18N MessageSource) 6

    13. Spring框架对JMS的集成(JMS Made Easy With Spring) 7

    14. 7.4.1. SpringQuartz 7

    15. 7.4.2. SpringJDK Timer的集成 7

    16. Spring远程方案(Spring Remoting) 7

    17. 參考 8

    1. Srping mvc

    4.2.1 直接编码方式

    事实上,把编码方式单独提出来称作一种方式并不十分恰当。

    由于无论什么方式。终于都须要编码才干"落实"全部信息并付诸使用。只是。通过这些代码,起码能够让我们更加清楚BeanFactory在底层是怎样运作的。

    以下来看一下我们的FX新闻系统相关类是怎样注冊并绑定的(见代码清单4-4)。

    代码清单4-4 通过编码方式使用BeanFactory实现FX新闻相关类的注冊及绑定

    作者::老哇的爪子Attilax艾龙。EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

     

    BeanFactory 仅仅是一个接口,我们终于须要一个该接口的实现来进行实际的Bean的管理,Default- ListableBeanFactory就是这么一个比較通用的BeanFactory实现类。DefaultListableBean- Factory除了间接地实现了BeanFactory接口。还实现了BeanDefinitionRegistry接口。该接口才是在 BeanFactory的实现中担当Bean注冊管理的角色。

    基本上。BeanFactory接口仅仅定义怎样訪问容器内管理的Bean的方法。各个 BeanFactory的详细实现类负责详细Bean的注冊以及管理工作。BeanDefinitionRegistry接口定义抽象了Bean的注冊逻 辑。通常情况下。详细的BeanFactory实现类会实现这个接口来管理Bean的注冊。它们之间的关系如图4-3所看到的。 

    在bindViaCode方法中,首先针对相应的业务对象构造与其相相应的BeanDefinition,使用了RootBeanDefinition作 为BeanDefinition的实现类。构造完毕后。将这些BeanDefinition注冊到通过方法參数传进来的 BeanDefinitionRegistry中。

    之后,由于我们的FXNewsProvider是採用的构造方法注入。所以。须要通过 ConstructorArgument- Values为其注入相关依赖。在这里为了同一时候说明setter方法注入,也同一时候展示了在Spring中怎样使用代码实现setter方法注入。假设要运 行这段代码,须要把setter方法注入部分的4行代码凝视掉。最后,以BeanFactory的形式返回已经注冊并绑定了全部相关业务对象的 BeanDefini- tionRegistry实例。

    public static void main(String[] args) {

    DefaultListableBeanFactory beanRegistry = new DefaultListableBeanFactory(); BeanFactory container = (BeanFactory)bindViaCode(beanRegistry); FXNewsProvider newsProvider = ?

    (FXNewsProvider)container.getBean("djNewsProvider"); newsProvider.getAndPersistNews(); }

    public static BeanFactory bindViaCode(BeanDefinitionRegistry registry) {

    AbstractBeanDefinition newsProvider = ?

    new RootBeanDefinition(FXNewsProvider.class,true); AbstractBeanDefinition newsListener = ?

    new RootBeanDefinition(DowJonesNewsListener.class,true); AbstractBeanDefinition newsPersister = ?

    new RootBeanDefinition(DowJonesNewsPersister.class,true); // bean定义注冊到容器中

    registry.registerBeanDefinition("djNewsProvider", newsProvider); registry.registerBeanDefinition("djListener", newsListener); registry.registerBeanDefinition("djPersister", newsPersister);

    BeanFactory须要使用的对象注冊和依赖绑定信息称为Configuration Metadata

    我们这里所展示的,实际上就是组织这些Configuration Metadata的各种方式。因此这个标题才这么长。

    4.2 BeanFactory的对象注冊与依赖绑定方式 27

    // 1. 能够通过构造方法注入方式

    ConstructorArgumentValues argValues = new ConstructorArgumentValues(); argValues.addIndexedArgumentValue(0, newsListener); argValues.addIndexedArgumentValue(1, newsPersister); newsProvider.setConstructorArgumentValues(argValues); // 2. 或者通过setter方法注入方式

    MutablePropertyValues propertyValues = new MutablePropertyValues();

    propertyValues.addPropertyValue(new ropertyValue("newsListener",newsListener));

    propertyValues.addPropertyValue(new PropertyValue("newPersistener",newsPersister)); newsProvider.setPropertyValues(propertyValues); // 绑定完毕

    return (BeanFactory)registry;

    }

    BeanFactory 仅仅是一个接口,我们终于须要一个该接口的实现来进行实际的Bean的管理,Default- ListableBeanFactory就是这么一个比較通用的BeanFactory实现类。DefaultListableBean- Factory除了间接地实现了BeanFactory接口。还实现了BeanDefinitionRegistry接口,该接口才

    是在 BeanFactory的实现中担当Bean注冊管理的角色。

    基本上。BeanFactory接口仅仅定义怎样訪问容器内管理的Bean的方法,各个 BeanFactory的详细实现类负责详细Bean的注冊以及管理工作。

    BeanDefinitionRegistry接口定义抽象了Bean的注冊逻 辑。

    通常情况下,详细的BeanFactory实现类会实现这个接口来管理Bean的注冊。它们之间的关系如图4-3所看到的。

    2. Ioc

    2.2.1. IoC Service Provider的职责 

    2.2.2. 运筹帷幄的秘密-IoC Service Provider怎样管理对象间的依赖关系 

    2.2.2.1. 直接编码方式(register via programming) 

    3. ApplicationContextBeanFactory的基础上构建,差别

    IoC容器选择。

    ? ApplicationContextApplicationContextBeanFactory的基础上构建。是相对照较高级的容器实现。除了拥 有BeanFactory的全部支持,ApplicationContext还提供了其它高级特性,比方事件公布、国际化信息支持等,这些会在后面详述。

     ApplicationContext所管理的对象。在该类型容器启动之后。默认全部初始化并绑定完毕。所以,相对于BeanFactory来 说,ApplicationContext要求很多其它的系统资源,同一时候,由于在启动时就完毕全部初始化,容器启动时间较之BeanFactory也会长一 些。在那些系统资源充足,而且要求很多其它功能的场景中。ApplicationContext类型的容器是比較合适的选择。

    通过图4-2,我们能够对BeanFactoryApplicationContext之间的关系有一个更清晰的认识。

    4-2 BeanFactoryApplicationContext继承关系

    注意 ApplicationContext间接继承自BeanFactory。所以说它是构建于BeanFactory之上的IoC容器。此外,你应该注意到了,ApplicationContext还继承了其它三个接口,它们之间的关系,我们将在第5章中具体说明。

    另外,在没有特殊指明的情况下。以BeanFactory为中心所讲述的内容相同适用于Applica- tionContext,这一点须要明白一下,二者有区别的地方会在合适的位臵给出解释。

    4. Aop

    5. 3.2.4.1. @AspectJ形式的SpringAOP 

    3.2.4.1.1. @AspectJ形式AOP使用之先睹为快 

    3.2.4. SpringAOP二世 

    3.2.4.1. @AspectJ形式的SpringAOP 

    3.2.4.1.1. @AspectJ形式AOP使用之先睹为快 

    3.2.4.1.1.1. 编程方式织入 

    3.2.4.1.1.2. 通过autoproxy织入 

    3.2.4.1.2. @AspectJ形式的Pointcut 

    3.2.4.1.2.1. @AspectJ形式Pointcut的声明方式 

    3.2.4.1.2.2. @AspectJ形式Pointcut表达式的标志符 

    3.2.4.1.2.3. @AspectJ形式的Pointcut在Spring aop中的真实面目 

    3.2.4.1.3. @AspectJ形式的Advice 

    6. spring的定时器

    7. spring的事务处理

    8. springstruts的整合

    9. springhibernate的整合

    10. spring的持久层封装 使用jdbctemptate訪问数据

    11. 2.3.1.3.7. 方法注入(Method Injection) 偷梁换柱之术 

    2.3.1.3.7.1. 方法注入(Method Injection) 

    2.3.1.3.7.2. 殊途同归 

    2.3.1.3.7.3. 方法替换(Method Replacement) 

    12. 国际化信息支持(I18N MessageSource) 

    2.3.2.2.1. JavaSE提供的国际化支持 

    2.3.2.2.2. MessageSource与ApplicationContext 

    2.3.2.2.2.1. 可用的MessageSource实现(Available MessageSources) 

    2.3.2.2.2.2. MessageSourceAware和MessageSource的注入 

    13. Spring框架对JMS的集成(JMS Made Easy With Spring) 

    7.2.1. 说说JMS的身世 

    7.2.2. 使用JMS API进行应用开发的传统套路 

    7.2.3. Spring改进后的JMS实战格斗术 

    7.2.3.1. 消息发送和同步接收(Synchronous Message Sending and Receiving) 

    14. 7.4.1. SpringQuartz 

    7.4.1.1. 初识Quartz 

    7.4.1.2. 融入Spring大家庭的Quartz 

    7.4.1.2.1. Job的实现策略 

    7.4.1.2.2. JobDetail的很多其它选择 

    7.4.1.2.3. Trigger的可配置化 

    7.4.1.2.4. Scheduler的新家 

    15. 7.4.2. SpringJDK Timer的集成 

    7.4.2.1. JDK Timer小记 

    7.4.2.2. Spring集成后的JDK Timer 

    7.4.2.2.1. 逃离TimerTask的魔咒 

    7.4.2.2.2. TimerTask的模块化封装 - ScheduledTimerTask 

    7.4.2.2.3. Timer的新家 - TimerFactoryBean 

    7.4.3. Executor的孪生兄弟TaskExecutor 

    7.4.3.1. 可用的TaskExecutor 

    7.4.3.2. TaskExecutor使用实例 

    16. Spring远程方案(Spring Remoting) 

    8.1. 从“对面交谈 ”到“千里传声 ” 

    8.2. Spring Remoting架构分析 

    8.2.1. Spring Remoting之远程訪问异常体系 

    17. 參考

    公布《Spring揭秘》整书文件夹 以简始,以简终 Always Keep Child-Like Wonder - ITeye技术站点.htm

    4.2.1 直接编码方式 - 51CTO.COM.htm

    SpringIoC容器之BeanFactory-博泰典藏网.htm

    基于Schema的AOP  基于Schema的AOP - Java - ITeye论坛.htm

    (impt,detail) 公布《Spring揭秘》整书文件夹 - 以简始。以简终 Always Keep Child-Like Wonder - ITeye技术站点.htm

     

  • 相关阅读:
    aws centos 基本环境安装
    aws 安装python解释器
    odoo 开发环境部署
    graphql规范
    python 字符串format使用
    设计模式
    集合的常见操作
    字典常见操作
    python实现简单的购物车
    python实现简单的登录管理
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7135855.html
Copyright © 2011-2022 走看看