spring ioc我的理解
最近看了一些spring的视频,以及书籍,我个人认为spring的IOC(依赖注入) ,就是通过spring容器将bean进行初始话,实际上就是通过无参构造函数的,进行初始化,同时大大减少了,java 的耦合性,使得开发更加容易。同时,spring能够成为非依赖性的轻量级框架也应如此。
<bean id="test" class="com.littleshrimp.spring.test" init-method="setup" destroy-method="teardown"
autowire="autowire type">
//init-method-->当BEAN被装入到容器中调用的初始化方法
//destroy-method-->当BEAN被移除容器中调用的方法
//atuowire -->自动装配属性:byName,byType,autodetect
//分别指代寻找相同的名字、类型或先按名字,不匹配时再按类型依照原有的bean进行匹配装备
//例如我想找一个bean,是test的初始化参数我就可以通过此属性自动装配
<constructor-arg>//通过构造函数
<value>aa</value>
//<ref bean="test1"> //参数为bean
</constructor-arg>
//constructor-arg可以有多个在有多个参数的情况下
<contstructor-arg index="1">
<value>aa</value>
</contestructor-arg>
<property name="arg0">
<value>通过set方法设置属性名为arg0的值</value>
</property>
<property name="arg1">
//将名为arg1的BEAN装配到test中
<ref bean="test1"/>
</property>
</bean>
通过applicationContext.xml来实现装备,依赖配置文件进行装备。
在类中直接通过取得applicationContext,示例:
public class test {
public static void main(String[] args){
//在FactorySystemXmlApplicationContext(中放置项目下的完整的applicationContext.xml的路径)
ApplicationContext context = new FactorySystemXmlApplicationContext("src/com/littleshrimp/spring/applicationContext.xml");
Test test = context.getBean("test");
test.getValue();
}
}
同时applicationContext.xml可以通过三种方式来调用:
-
FactorySystemXmlApplicationContext(完整路径)
-
ClassPathXmlApplicationContext(类与applicationContext文件的相对路径名)
-
XmlWebApplicationContext(web系统中的相对路径)