//id是bean的唯一标识符(对象名) //class是包名+类名 //name是别名,可以取多个别名
在开发中,我们总是使用一个总的applicationContent.xml,用import把其他的bean.xml导进来。这样要spring上下文的时候就只用引入applicationContent.xml
最常用的俩种注入:private String name, private Address address
//普通值注入 //bean注入
别的属性一些重要的注入,array数组,list链表,map集合
p命名空间注入User对象
public class User{
private int age;
private String name;
------------
set,get方法
}
注意p命名空间的使用得引入 xmlns:p="http://www.springframework.org/schema/p"
C命名空间注入
使用前提是必须在User类中有无参构造器和有参构造器
注意c命名空间的使用得引入 xmlns:c="http://www.springframework.org/schema/c"
反射获取注入的bean
ApplicationContext context=new ClassPathXmlApplicationContext("userbeans.xml")
User user=context.getBean("user",User.class) //反射获取注入的bean
System.out.printin(user)
强转获取注入的bean
User user=(User)context.getBean("user") //强转获取注入的bean
xml方式自动装配
没有自动装配的时候,要在xml里手动配置
byName自动装配
byName方式要求cat,dog的beanid,得和people这个对象set方法后面的值一样
bytype自动装配
bytype方式beanid是啥都无所谓,人家根本不看,你都可以不写beanid, 但是必须保证dog这个class类型全局唯一
单例模式
默认是单例模式,每次从容器中拿到的是同一个对象
原型模式
原型模式,从容器中拿user2,打印对象的hashcode值,发现俩次拿到的不是同一个对象



