最近看了一些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系统中的相对路径)