作者:Stephen
/**
* 1)src:源码包开始的路径,称为类路径的开始
* 所有源码包里面的东西都会被合并放在类路径里面
* Java:/bin
* web项目的类路径:/web-inf/classes
* 2)导包commons-logging
* 3)先导包再创建配置文件
* 4)spring的容器接管了标志了S标记的类
*细节:
* 1)ApplicationContext(IOC容器的接口)
* 2)给容器中注册一个组件,我们也从容器中按照id拿到了这个组件的对象?
* 答: 组件的创建工作是容器完成的;
* Person对象是什么时候创建好的呢?
* 答: 容器中对象的创建在容器创建完成的时候就已经创建了(有几个对象创建几次)
* 3)同一个对象在ioc容器中是单实例的;
* 4)容器中如果没有这个对象获取组件的话报异常NoSuchBeanDefinitionException
* 组件未定义异常
* 5)property赋值调用setter方法进行赋值
* 6)javaBean的属性名由什么决定的?getter/setter方法的set/get后面的名字
* getter/setter全部自动生成的
* 7)* 如果ioc容器中这个类型的bean有多个用类型找就会报NoUniqueBeanDefinitionException异常
* 这个时候就只能通过bean的id来找
* 但是可以用ioc.getBean(id,class)方法就可以找到
*/
/**
* 从容其中拿到这个组件
*/
@Test
void test() {
//ApplicationContext:代表ioc容器
//ClassPathXmlApplicationContext:当前应用的xml配置文件在ClassPath下
//根据spring的配置文件得到ioc容器对象
ApplicationContext ioc = new ClassPathXmlApplicationContext("IOC.xml");
//容器帮我们创建对象
Person bean = (Person)ioc.getBean("person01");
System.out.println(bean);
}
}


静态工厂创建对象

实例工厂创建

spring管理连接池






autowired后的(required=false):找不到后返回null


