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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容