Spring 装配、properties文件配置、Bean的抽象和继承、Bean的作用域

手动装配

      <bean id="person" class="autowire.Person" p:name="苏苏" p:address-ref="adress" p:car-ref="car"></bean>

自动装配: 可以使用autowire属性指定自动装配的方式

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

<bean id="person" class="autowire.Person" p:name="苏苏" autowire="byName"></bean>

            byType 根据bean的类型和当前bean的属性的类型进行自动装配,若IOC容器中有一个以上的类型匹配的bean,则抛异常

<bean id="person" class="autowire.Person" p:name="苏苏" autowire="byType"></bean>

properties文件配置

Spring内部配置,在其后期修改时不方便

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

        <property name="user" value="root"></property>

        <property name="password" value="mysql123"></property>

        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>

        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test??                      useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=true"></property>

</bean>

Spring外部配置,将其外部配置好的properties文件引入,修改时只需修改外部文件

<context:property-placeholder location="classpath:db.properties"/>

<bean id="dataSource1" class="com.mchange.v2.c3p0.ComboPooledDataSource">

               <property name="user" value="${user}"></property>

                <property name="password" value="${password}"></property>

                <property name="driverClass" value="${driverClass}"></property>

                <property name="jdbcUrl" value="${jdbcUrl}"></property>

</bean>

Bean的抽象和继承

使用abstract属性:true为是抽象类 false为不是抽象类 抽象类无法被实例化 若一个bean的class属性没有指定 ,则该bean必须是一个抽象bean

<bean id="addresss" abstract="true" p:city="XIAN" p:street="涂山……"></bean>

初始bean配置

<bean id="address" class="autowire.Address" p:city="XIAN" p:street="涂山~~~~"></bean>

bean 配置的继承:使用bean的parent 属性指定继承哪个bean的配置

要求在配置Person时必须有一个关联的car! 即person这个bean依赖于Car这个bean

<bean id="address2" parent="address" p:street="涂山¥¥¥¥"></bean>

Spring 允许用户通过depends-on属性设定Bean前置依赖的Bean,前置依赖的Bean会在本Bean实例化之前创建好

  如果前置依赖于多个Bean,则可以通过逗号,空格或的方式配置Bean的名称

<bean id="car" class="autowire.Car" p:brand="凯迪拉克" p:prive="1000000000"></bean>

<bean id="person" class="autowire.Person" p:name="涂山雅雅" p:address-ref="address" p:car-ref="car" depends-on="car"></bean>

Bean的作用域

通过scope来对bean的作用域来进行控制

默认的为:singletion 单例的 即 在整个容器的生命周期内只创建这一个bean    在容器创建时就已被实例化

prototype:原型的。容器初始化时不创建bean的实例,而在每次请求时都创建一个新的Bean实例,并返回。

<bean id="car" class="autowire.Car" p:brand="奔驰" p:prive="3.0" scope="singleton"></bean>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容