Spring学习01

滴水穿石

 

Spring 的概念就不要说了,这只是复习

1. IOC容器

ApplicationContext ctx = new ClassPathXmlApplicationContext("bean-autowire.xml");
ApplicationContext  就是IOC容器,可以这么理解
IOC容器从哪里加载?一般都使用上述方式,从配置文件中加载
ClassPath 应该不用说了,就是项目的src 目录下

2.bean的配置

2.1 属性配置

<bean id="address" class="com.cfb.learn.domain.Address">
        <property name="city" value="BeiJing"></property>
        <property name="street" value="XiZHiMen"></property>
    </bean>

2.2 构造器配置

<bean id="car" class="com.cfb.learn.domain.Car"><!-- p:name="Falali" p:price="300000.25" -->
        <constructor-arg name="name" value="Falali"></constructor-arg>
        <constructor-arg name="price" value="300000.25"></constructor-arg>
    </bean>

2.3 命名空间、命名引用、自动装配

<bean id="person" class="com.cfb.learn.domain.Person"
        p:name="XiaoMing" p:address-ref="address" autowire="byName"></bean>

byName: 根据bean的名字及bean的setter风格的属性名进行自动装配,若有匹配则自动装配,没有则不装配

byType: 

一般不使用自动装配,不是那么灵活

结果:

Person [name=XiaoMing, address=Address [city=BeiJing, street=XiZHiMen], car=Car [name=Falali, price=300000.25]]

  

 2.4 bean配置的继承

<bean id="address" class="com.cfb.learn.domain.Address" 
             p:city="BeiJing……" p:street="XiZHiMen"></bean>    
    
<bean id="address2" class="com.cfb.learn.domain.Address" 
             p:city="BeiJing" parent="address"></bean>

父类可以 声明为抽象的类 abstract="true"

抽象的类可以没有 class ,但是没有 class 必须为抽象类,这样可以作为模板使用

 

 2.5 bean 之间的依赖关系

depend-on

可以通过depend-on 设置 bean 的前置依赖

IOC容器初始化的时候,会在Bean初始化之前先实例化依赖的bean

 

 

—————————————————————————————————————————————————————————————————————————

无论如何,心平气和

posted @ 2017-07-28 10:41  江湖一笑  阅读(106)  评论(0编辑  收藏  举报