Spring中IoC容器的简单理解

作者: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

你可能感兴趣的:(Spring中IoC容器的简单理解)