Spring 创建bean的时机

默认在启动spring容器的时候,spring容器配置文件中的类就已经创建完成对象了
        在<bean>中添加属性lazy-init,默认值为false。

   true  在context.getBean的时候才要创建对象
                      *  优点
                                    如果该bean中有大数据存在,则什么时候context.getBean,什么时候创建对象
                                    可以防止数据过早的停留在内存中,做到了懒加载
                      *  缺点
                                     如果spring配置文件中,该bean的配置有错误,那么在tomcat容器启动的时候,发现不了
                   false 在启动spring容器的时候创建对象
                      *  优点
                                     如果在启动tomcat时要启动spring容器,
                                     那么如果spring容器会错误,这个时候tomcat容器不会正常启动
                      *  缺点
                                      如果存在大量的数据,会过早的停留在内存中

时间: 2024-10-29 19:10:42

Spring 创建bean的时机的相关文章

spring创建Bean对象的控制

1.spring创建Bean对象的控制 a.控制对象创建方式(使用范围),在<bean>元素中使用scope属性控制,scope可以支持singleton或prototype,默认值是singleton <bean scope= "singleton"> 该组件在spring容器里只有一个bean对象.每次取出的bean都是同一个bean,相当于单例模式 <bean scope = "prototype">该组件每次使用getBe

Spring创建Bean的顺序

一直对Spring创建bean的顺序很好奇,现在总算有时间写个代码测试一下.不想看过程的小伙伴可以直接看结论 目录结构: 其中:bean4.bean5包下的class没有注解@Component,测试过程中,这两个包的class会直接通过<bean class="XXXXX"/>的方式创建.bean1.bean2.bean3包下的class注解了@Component,以便component-scan扫描.另外,bean创建之间没有依赖关系,例如bean1的创建不依赖于其他b

Spring 创建Bean的6种方式

前言 本文讲解了在Spring 应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案. 方式1: 使用Spring XML方式配置,该方式用于在纯Spring 应用中,适用于简单的小应用,当应用变得复杂,将会导致Bean管理很麻烦 <bean id="xxxx" class="xxxx.xxxx"/> 方式2: 使用@Component,@Service,@Controler,@Repository注

spring创建bean的三种方式

1.使用构造器创建bean 1.1.使用无参构造器创建 package com.ly.spring; public class Person { private String name; public void say(String name) { System.out.println("你好,我叫"+name); } } <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&

反射结合xml简单的模拟spring创建bean

框架最底层其实就是通过反射实现的,就像spring,当你配置各种各样的bean时都是以配置文件的形式配置的,你需要用到哪些bean就配哪些,spring容器就会根据你的需求去动态加载,这儿写一个简单的例子模拟一下: 1.加深对反射的理解, 2.了解一下框架的实现的原理 3.通过dom4j对xml的解析 两个简单的类: User: public class User { private String userName; private String userPwd; private String

理解Spring的Bean工厂

一提到工厂,我们先来回忆前面学习过的工厂方法和抽象工厂模式: 工厂方法:针对产品维度,可以产生新的产品,也可以产生新的产品工厂,既可以扩展产品维度.但是如果我们想在普通工厂上生产产品系列,就会特别麻烦如果产生Apple你就得产生AppleFactory,如果产生Mushroom,就得产生MushroomFactory.这样就会照成工厂泛滥. 抽象工厂:针对产品系列,可以在谋一系列的产品上进行扩展.缺点是如果产生产品新种,改动就会很多. Spring工厂:可以在产品系列方面既能扩展,又能确定产品品

【Spring】详解Spring中Bean的加载

之前写过bean的解析,这篇来讲讲bean的加载,加载要比bean的解析复杂些,该文之前在小编原文中有发表过,要看原文的可以直接点击原文查看,从之前的例子开始,Spring中加载一个bean的方式: TestBean bean = factory.getBean("testBean"); 来看看getBean(String name)方法源码, @Override public Object getBean(String name) throws BeansException { re

Spring关于Bean

spring创建bean的三种方式:调用构造器,调用静态工厂方法,调用实例工厂方法 静态工厂方法: <bean id="dog" class="静态工厂类" factory-method="静态工厂类里面的方法">   <!-- 配置静态工厂方法的参数 --> <constructor-arg value="一个参数,如果相同于静态工厂类里面的方法的参数,就返回该参数类的方法"/> <

03 Spring对Bean的管理

Spring创建bean的三种方式 1.第一种方式:使用默认构造函数创建 bean.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche