[刘阳Java]_Spring相关配置介绍_第5讲

Posted 刘阳Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[刘阳Java]_Spring相关配置介绍_第5讲相关的知识,希望对你有一定的参考价值。

这一节我们介绍一下Spring框架的相关常用配置

  • Spring依赖注入的两种方式(构造方法注入和setter方式注入)
  • p-namespace方式配置
  • properties属性文件配置方式
  • 集合对象配置方式
  • Bean scopes作用域(单例作用域和原生作用域)

1. Spring依赖注入方式

  • 构造方法注入,它相当于在Spring初始化对象的时候调用构造方法将其对象之间的依赖关系给注入到对象中
    • 先在类中定义好依赖对象
    • 再去定义构造方法,通过在构造方法的参数中设置对象的依赖关系
    • 最后在Spring配置文件中使用<constructor-arg>标签搞定对象的依赖注入
package com.gxa.spring.day02;

public class PetServiceImpl {
    
    private PetDaoImpl petDao; //依赖对象
    
    public PetServiceImpl(PetDaoImpl petDao) { //构造方法的DI
        this.petDao = petDao;
    }
    
    public void selectPet() {
        petDao.selectPet();
    }
}
package com.gxa.spring.day02;

public class PetDaoImpl {
    
    public void selectPet() {
        /**
         * 完成宠物数据查询
         */
        System.out.println("==宠物数据查询==");
    }
}
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="petService" class="com.gxa.spring.day02.PetServiceImpl">
        <constructor-arg name="petDao" ref="petDao"></constructor-arg>
    </bean>
    
    <bean id="petDao" class="com.gxa.spring.day02.PetDaoImpl"></bean>
    
</beans>
  •  设值注入,它通过给依赖对象添加setter方法来完成对象的DI
    • 先定义好依赖对象
    • 再给依赖对象添加setter方法
    • 最后在配置文件中使用<property.../>标签就OK了
package com.gxa.spring.day01;

public class PetServiceImpl {
    
    private PetDaoImpl petDao; //依赖对象
    private ItemDaoImpl itemDao; //依赖对象
    
    public void setPetDao(PetDaoImpl petDao) {
        this.petDao = petDao;
    }
    
    public void setItemDao(ItemDaoImpl itemDao) {
        this.itemDao = itemDao;
    }
    
    public void selectPet() {
        petDao.selectPet();
        itemDao.selectItem();
    }
}
package com.gxa.spring.day01;

public class PetDaoImpl {
    
    public void selectPet() {
        /**
         * 完成宠物数据查询
         */
        System.out.println("==宠物数据查询==");
    }
}
package com.gxa.spring.day01;

public class ItemDaoImpl {
    
    public void selectItem() {
        /**
         * 完成宠物分类数据查询
         */
        System.out.println("==宠物分类的数据查询==");
    }
}
<?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">
    
    <bean id="person" class="com.gxa.spring.day01.Person"></bean>
    
    <bean id="petService" class="com.gxa.spring.day01.PetServiceImpl">
        <property name="petDao" ref="petDao"></property>
        <property name="itemDao" ref="itemDao"></property>
    </bean>
    
    <bean id="petDao" class="com.gxa.spring.day01.PetDaoImpl"></bean>
    
    <bean id="itemDao" class="com.gxa.spring.day01.ItemDaoImpl"></bean>
</beans>

 

以上是关于[刘阳Java]_Spring相关配置介绍_第5讲的主要内容,如果未能解决你的问题,请参考以下文章

[刘阳Java]_Spring AOP基于XML配置介绍_第9讲

[刘阳Java]_Spring入门_第1讲

[刘阳Java]_Spring对Transaction的支持_第12讲

[刘阳Java]_Spring整合Servlet补充_第14讲

[刘阳Java]_Spring对Dao的支持_第10讲

[刘阳Java]_MyBatis_映射文件的常用标签总结_第5讲