目录
6.3,拓展注入
6.4,bean的作用域
7.Bean的自动装配
7.1,测试
7.2,ByName自动装配
7.7,ByType自动装配
6.3,拓展注入
我们可以使用p命名空间和c命名空间来进行注入!
官方解释;
使用:
测试:
import com.xiao.domain.Student;
import com.xiao.domain.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class beansTest {
@Test
public void test01(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Student student = (Student) applicationContext.getBean("student");
System.out.println(student.toString());
}
@Test
public void test02(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("userbeans.xml");
User bean = applicationContext.getBean("user", User.class);
System.out.println(bean);
}
@Test
public void test03(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("userbeans.xml");
User bean = applicationContext.getBean("user02", User.class);
System.out.println(bean);
}
}
注意点:p命名和c命名不能直接使用需要导入约束!
xmlns:p="http://www.springframework.org/schema/p" xmlns:c="http://www.springframework.org/schema/c"
6.4,bean的作用域
1.单例模式(Spring默认)
2.原型模式:每次从容器中get的时候产生一个新的对象!
3.其余的request,session,application,websocket这些只能在web中用到.
7.Bean的自动装配
- 自动装配是spring满足bean依赖的一种方式!
- spring会在上下文中自动寻找,并自动给bean装配属性!
在spring中有三种装配方式:
- 在xml中显示的配置
- 在java中显示的配置
- 隐式的自动装配bean[重要]
7.1,测试
1.环境搭建:一个人有两个宠物
7.2,ByName自动装配
7.7,ByType自动装配
小结:
- 在byName的时候需要保证所有bean的id唯一,并且这个bean需要和自动注入的属性set方法的值一致!
- 在byType的时候必须要帮助bean的所有类型唯一,并且这个bean必须要和自动注入的属性类型一致!



