spring--xml配置管理bean--IOC--DI--知识点总结

目录结构:和用到的jar包

springTest.java文件

package com.xie.controler;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.xie.dao.userDao;
import com.xie.dao.userDaoImp;
public class springTest {
    @Test
    //传统方式实例化对象
    public void test() {
        userDao user = new userDaoImp();
        user.say();
     /*
              * 如果要扩展的话,会很繁琐
                 * 动一发而牵全身
                 * 所以就有下面的spring框架
       * */
    }
    
    @Test
    //sping管理方式实例化对象
    public void springTest01(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        
        userDao userdao = (userDao) applicationContext.getBean("userDao");
        userdao.say();
    }
    
    

}

applicationContext.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:p="http://www.springframework.org/schema/p"
    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="userDao" class="com.xie.dao.userDaoImp"></bean> -->
    <!-- 切换底层实现类 -->
    <!-- <bean id="userDao" class="com.xie.dao.upDateUserDaoImp"/> -->
    
    <!--
    	IOC和DI的区别
    	IOC是控制反转,实例化对象不用new了,交给spring管理
    	而DI依赖注入是基于IOC来往spring管理的类中设置该类里的属性值
     -->
	
	<!-- spring中属性注入有两种方式,
		1.通过构造函数注入
		2.通过set方法注入
	 -->
	 
	 <!-- 1.通过构造函数注 -->
	 <!-- <bean id="userDao" class="com.xie.dao.userDaoImp">
	 <constructor-arg name="username" value="谢奇标" />
	 <constructor-arg name="age" value="22" />
	 </bean> -->
	 
	 <!--2.通过set方法注入属性值 -->
	 <!-- <bean id="userDao" class="com.xie.dao.userDaoImp">
	 <property name="username" value="谢大标"/>
	 <property name="age" value="28"/>
	 </bean> -->
	 
	 
	 <!--3.spring2.5及以上版本, P名称空间的引用,在xml文件开头定义声明: xmlns:p="http://www.springframework.org/schema/p" -->
	 <bean id="userDao" class="com.xie.dao.userDaoImp" p:username="谢奇标,p名称空间方式注入属性值"  p:age="22"/>
	
	<!--4.SpEL语言属性注入 #{SpEL} {}里面可以是整数,字符串,表达式,对象等 -->
	<bean id="userDao" class="com.xie.dao.userDaoImp">
	<property name="username" value="#{'SpEL谢大标'}"/>
	<property name="age" value="#{25}"/>
	</bean>
	 


</beans>

猜你喜欢

转载自blog.csdn.net/qq_40612528/article/details/85112676
今日推荐