目录结构:和用到的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>