ssm 创建bean的三种方式和spring依赖注入的三种方式

 <!--创建bean的第一种方式:使用默认无参构造函数 在默认情况下:
    它会根据默认无参构造函数来创建类对象。如果 bean 中没有默认无参构造函数,将会创建失败-->
    <bean id="service" class="service.Impl.ServiceImpl" scope="prototype"></bean>
    <!--第二种方式,使用普通工厂中的方法创建对象(使用某个类中的方法创建对象并且使用容器)-->
    <bean id="factory" class="factory.InstanceFactory"></bean>
    <bean id="factoryService" factory-bean="factory" factory-method="getService"></bean>
    <!--第三种方法,使用工厂中的静态方法创建对象(使用某个类中的静态方法创建对象,并存入Spring容器)-->
    <bean id="staticFactory" class="factory.StaticInstance" factory-method="getService"></bean>

spring依赖注入的三种方式

  1.使用构造函数提供(使用较少)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--注入的方式:
    1.使用构造函数提供
    2.使用set方法提供(使用较多)
    3.使用注解提供-->
<!--========================   1.使用构造函数提供(使用较少)=============================-->
    <bean id="service" class="service.Impl.ServiceImpl">
        <!--constructor-arg 里面的属性
            type:用于要注入的数据的类型,该类型也是构造函数中某个或者某个的参数类型
            index:用于要注入的数据给构造函数中指定索引位置色参数赋值,索引的位置是从0开始
            name: 用于指定给构造函数中指定名称的参数复制(建议使用)
            =============以上三个用于指定给哪个参数复制=================
            value:用于提供基本数据类型和string的数据
            ref:用于指定其他bean类型数据.它指的是在spring的ioc核心容器中出现过的bean对象

            注意!因为是构造提供所以必须要给value赋值,即使不用到也得提供参数
        -->
        <constructor-arg name="name" value="------测试"></constructor-arg>
        <constructor-arg name="age" value="19"></constructor-arg>
        <constructor-arg name="birthday" ref="now"> </constructor-arg><!--constructor标签不可以编译日期-->
        <!--ref-->
    </bean>
<!--配置日期-->
    <bean id="now" class="java.util.Date"></bean>

</beans>
 2.使用set方法提供(使用较多)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--注入的方式:
    1.使用构造函数提供(使用较少)
    2.使用set方法提供(使用较多)
    3.使用注解提供-->
<!--========================使用set方法提供(使用较多)=============================-->
    <bean id="service" class="service.Impl.ServiceImpl">
        <!--property标签 bean的内部
            1.name:用于指定注入的所调用的set方法名称
            -->
        <property name="name" value="test"/>
        <property name="age" value="24"/>
        <property name="birthday" ref="now"/>
    </bean>
    <bean id="now" class="java.util.Date"/>
</beans>

  2.1.复杂依赖注入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--注入的方式:
    1.使用构造函数提供(使用较少)
    2.使用set方法提供(使用较多)
    3.复杂注入
    //3.使用注解提供-->
<!--======================复杂注入===============================-->
    <bean id="ser" class="service.Impl.ServiceImpl">
        <property name="myStrs">
            <array>
                <value>aaa</value>
                <value>bbb</value>
            </array>
        </property>
        <property name="myList">
            <list>
                <value>list1</value>
                <value>2</value>
            </list>
        </property>
        <property name="myMap">
            <map>
                <entry key="1" value="啊啊啊"></entry>
                <entry key="2"><value>啊啊啊</value></entry>
            </map>
        </property>
        <property name="myProps">
            <props>
                <prop key="测试标签体">测试标签体</prop>
            </props>
        </property>
    </bean>
    <!--用于给Map结构注入的标签
            map标签和props结构相同可以互换
        用于给list结构集合注入的标签
            list    array     set 都可以使用
        -->

</beans>

  3.注解依赖注入

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">
    <!--基于注解-->
    <!-- 告知spring框架在,读取配置文件,创建容器时,扫描注解,依据注解创建对象,并存入容器中 -->
        <context:component-scan base-package="com"/>
</beans>    

 

 

posted @ 2020-04-11 11:08  三只坚果  阅读(2089)  评论(0编辑  收藏  举报