现在学习一下spring的具体概念:
1.IOC inverse of control 控制反转 是一种可以帮助我们解耦各业务对象间依赖关系的对象绑定方式。避免冗余的factory和singleton
2.依赖注入的方式有三种:接口注入,构造方法注入,setter方法注入。
3.当前流行的IOC Service Provider产品使用的注册对象管理信息的方式主要有以下几种:
直接编码方式:通过为相应的类指定对应的具体实例 spring
配置文件方式:spring
元数据方式:代表是google guice。元数据信息标注,即注解
4.@Autowired:告知spring容器需要为当前对象注入哪些依赖对象
@Component:配合spring2.5以后的classpath-scaning功能使用。
<context:component-scan base-package="org.mybatis.jpetstore.service" />
表示在指定包下面扫描标注有@Component的类,如果找到,则将它们添加到容器进行管理,并根据它们所标注的@Autowired为这些类注入符合条件的依赖对象。
5.构造方法注入的XML之道:<constructor-arg> 参考书本spring揭秘 P37页
setter方法注入之道:<property>
6. 工厂方法与FactoryBean
如果我们是利用第三方库的对象,为了使用依赖注入,要使用工厂模式;
如:<bean id="bar" class="...StaticBarInterfaceFactory" factory-method="getInstance"/>
这样,这个bean返回的对象不是StaticBarInterfaceFactory,而是这个工厂利用getInstance方法所创建出来的类。这个可以参见书本的P56页。
再看FactoryBean,就拿jpetstore的配置文件来说:
其中有:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
其中这个bean所返回的不是SqlSessionFactoryBean类,而是这个类所getObject所返回的类Class<? extends SqlSessionFactory>。
7.BeanFactoryPsotProcessor容器扩展机制,该机制允许我们在容器实例化相应对象之前,对注册到容器的BeanDefinition所保存的信息做相应的修改。
spring的一些简单概念
最新推荐文章于 2025-04-07 17:04:55 发布