初识Spring

    今天开始学习Spring.听闻这个颇为流行的框架已经很久了.之前也写了个简单模拟的IoC容器.所以对Spring充满向往和好奇(⊙﹏⊙b汗).今天主要是学习不得不提的几个概念和如何使用Spring框架.

    首先是Spring框架.并不是我之前理解的仅仅是个IoC容器.事实上它是一个基于IoC和AOP构造多层J2EE开发系统的框架.声称是一个轻量级的框架.它以非侵入的方式管理代码.因为使用IoC实现了解耦,它得以组织起其他框架.此外事实上,它还提供了其他的很多企业级服务(JNDI,JMS,持久化,事务管理服务等).如果以提供服务多少为评价标准的话,Spring可以称为重量级.当然,单纯以我们一般使用的spring-core包论,是轻量级的.

    然后,IoC(Inversion of Control)机制,反向控制是指对象的生命周期不再由调用者控制而是反转到了容器.幸而之前写过手工IoC容器.大致知道容器内部如何创建对象,提供对象(没写销毁).下一个问题是,容器怎么知道创建什么样的对象?当然是配置文件(我们用的是XML).在其中写入<beans>标签下写入<bean>标签指定它的id和class属性,(根据之前的手工IOC推测)id用于标识创建后存入容器里的对象,class则是用于反射得到对象.这是IoC负责的范围.

   下一个概念是DI(dependency injection),依赖注入.容器中已经有了需要的bean了,下一步是把bean给有需求的.这个过程就是依赖注入.在调用者类中,写入一个私有属性(一般为接口方便扩展),加入setter,就可以在需要的时候通过setter把内容给它.(这个是设值注入.如果是构造注入,  就是将私有属性作为构造器的参数,直接注入到构造器中).

   事实上,个人理解,解耦的过程既是将对象读到容器,再在适合的时候注入到类中.反射机制扮演的角色就是使Spring可以非侵入的方式来提供服务.

   如何使用Spring框架.还是那么几步,下载源码,加入Java包,然后写配置文件,然后使用.配置文件提供了很多的功能,因而相当灵活.比如提供了设值注入和构造注入,提供lazy-init,提供scope来决定是否为prototype或者singleton(我才知道prototype是设计模式,scope默认的是singleton),提供了自动装配的方式(autowire=byName,byType,constructor,autodetect).

   下午还尝试看一些介绍SpringIoC的文章,大块大块的代码搞得我有点晕乎乎的.收获还是有的,至少知道了BeanFactory和ApplicationContext等 Context的区别.BeanFactory定义的是基本的接口,ApplicationContext等则是在此基础上做的强化,提供更多的服务.因此一般都是直接用Context.还了解到,虽然用的很多是xml,但是只是一种数据源其实还可以用到FileSystem,DB等等.只要有相应的ApplicationContext就可以.

   OK,期待明天...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值