首页 > 代码库 > [刘阳Java]_Spring相关配置介绍_第5讲

[刘阳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讲