02、Spring中的Bean实例化、作用域、生命周期及装配方式介绍

16 篇文章 2 订阅
订阅专栏

简介:本笔记主要介绍以下几点
1、Bean的常见属性及其子元素
2、实例化Bean的三种方式
3、Bean的生命周期和作用域
4、Bean的三种装配方式

1、Bean的配置

Spring简单来说就是一个大工厂,这个工厂负责创建和管理Spring容器中的Bean对象,如果要使用,就需要对其进行配置。
Spring支持XML和Properties两种格式的配置文件。(常用的是XML方式,便于管理Bean和Bean之间的关系)。
XML配置方式根元素是<beans> <beans>中包含多个<bean>子元素。

1、<bean>元素的常见属性及子元素

属性或子元素名称解释
id是每一个Bean的唯一标识,Spring容器对Bean的配置,管理都需要靠该属性来完成
nameSpring容器可以通过name属性来对Bean进行管理和配置,此时name可以被配置多个,多个值之间使用逗号隔开
class该属性指定Bean的具体实现类,必须填写全限定类名。
constructor-arg<bean>元素的子元素,可以使用此元素传入构造器的参数进行实例化。该元素的index属性指定构造参数的序号(从0)开始,type属性指定狗仔参数的类型,参数值可以通过ref属性或value直接指定
property<bean>元素的子元素,用于调用bean实例中的setter方法完成属性赋值,从而完成依赖注入。该元素的name指定实例中相应的属性名称,ref或value用于指定参数值
ref<property> <constructor-arg >等元素的属性或子元素,可以用于指定工厂中某个Bean的实例引用
value<property> <constructor-arg >等元素的属性或子元素,可以用于指定一个常量值
list用于封装List或数组类型的依赖注入
set用于封装set类型的依赖注入
map用于封装map类型的依赖注入
entry<map>元素的子元素,用于设置一个键值对,其中key属性标识键值,ref或value表示值。

2、基本使用演示

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    <!--关联db.properties-->
    <context:property-placeholder location="classpath:db.properties"/>
    
    <!--配置数据库连接池-->
    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <property name="driverClassName" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${password}"/>
    </bean>
    <!--配置StudentDAOImpl-->
    <bean id="studentDAO" class="cn.simplelife.dao.impl.StudentDAOImpl">
        <property name="dataSource" ref="druidDataSource"/>
    </bean>

    <!--配置serviceImpl-->
    <bean id="studentService" class="cn.simplelife.service.impl.StudentServiceImpl">
        <property name="studentDAO" ref="studentDAO"/>
    </bean>
</beans>

【注意】:

  • 如果id和name属性都没有指定,那么spring会默认将class的值当作id使用

2、Bean的实例化

在java中我们需要使用一个对象的时候,就必须先实例化这个对象,Spring中也是如此。Spring中实例化的方式主要有以下三种:
1、构造器实例化
2、静态工厂实例化
3、实例工厂实例化

1、构造器实例化

1、创建一个Cat类

package cn.simplelife.domain;

/**
 * @ClassName Cat
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 9:54
 * @Version 1.0
 */

public class Cat  {
}

2、书写一个配置文件

<?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:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     <bean id="cat"  class="cn.simplelife.domain.Cat"/>
</beans>

3、编写测试类

package cn.simplelife.domain;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import static org.junit.Assert.*;

/**
 * @ClassName CatTest
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 9:55
 * @Version 1.0
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:cat.xml")
public class CatTest {

    @Autowired
    private Cat cat;

    @Test
    public void getCat() {
        System.out.println(cat);
    }
}

4、运行截图

在这里插入图片描述

2、静态工厂方式实例化

1、创建一个Duck类

package cn.simplelife.domain;

/**
 * @ClassName Duck
 * @Description
 * @Author simplelife
 * @Date 2022/11/21 17:20
 * @Version 1.0
 */

public class Duck {
}

2、创建一个静态工厂类

package cn.simplelife.domain;

/**
 * @ClassName DuckFactoryBean
 * @Description
 * @Author simplelife
 * @Date 2022/11/21 17:21
 * @Version 1.0
 */

public class DuckFactoryBean {
    public static Duck createDuck() {
        return new Duck();
    }
}

3、书写配置文件

<?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:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="duck" class="cn.simplelife.domain.DuckFactoryBean" factory-method="createDuck"/>
</beans>

4、编写测试类

package cn.simplelife.domain;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @ClassName DuckFactoryBeanTest
 * @Description
 * @Author simplelife
 * @Date 2022/11/21 17:25
 * @Version 1.0
 */

public class DuckFactoryBeanTest {

    @Test
    public void getDuck(){
        ApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath:duck.xml");
        Duck bean = classPathXmlApplicationContext.getBean(Duck.class);
        System.out.println("bean = " + bean);
    }
}

5、运行截图

在这里插入图片描述

3、实例工厂方式实例化

1、创建一个Dog类

package cn.simplelife.domain;

/**
 * @ClassName Dog
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 9:59
 * @Version 1.0
 */

public class Dog {
}

2、创建一个实例工厂用来返回Dog对象

package cn.simplelife.domain;

/**
 * @ClassName DogFactory
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 9:59
 * @Version 1.0
 */

public class DogFactoryBean {
    public Dog createDog() {
        return new Dog();
    }
}

3、书写配置文件

<?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:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--配置实例工厂-->
    <bean id="dogFactoryBean" class="cn.simplelife.domain.DogFactoryBean"/>

    <!--配置dog实例
    factory-bean="dogFactoryBean":使用配置的实例工厂
    factory-method="createDog":使用工厂中的方法创建对象
    -->
    <bean id="dog" factory-bean="dogFactoryBean" factory-method="createDog"/>

</beans>

4、编写测试类

package cn.simplelife.domain;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @ClassName DogTest
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 10:00
 * @Version 1.0
 */

public class DogTest {
    @Test
    public void testGetDog() {
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("classpath:dog.xml");
        Dog bean = applicationContext.getBean(Dog.class);
        System.out.println("bean = " + bean);
    }
}

5、运行截图

在这里插入图片描述

3、Bean的作用域

1、Spring中Bean对象的作用域分类

作用域名称说明
singleton使用该作用域,那么从始至终都只有一个实例对象存在于容器中,也是spring容器的默认的作用域
prototype每次通过Spring容器获取的prototype定义的bean,Spring容器都会创建一个新的bean实例对象,该对象是存放在内存中的,主要是防止在容器中导致过度的垃圾实例对象
request在一次Http请求中,容器会返回该Bean的同一个实例,对不同的Http请求返回不同的bean对象,并且只在该请求中有效
session在一次的http Session中会产生该bean实例,并且只在当前的httpsession中有效
globalSession在一个全局的HTTP Session中有用。仅在使用portlet上下文时有效
application为每个ServletContext创建一个实例对象,仅限在web中使用
websocket为每个websocket创建一个实例。

2、常用作用域——singleton

【特点】:

  • 是Spring容器的默认作用域。
  • 被singleton修饰的实例,无论引用多少次,在容器中只有一个实例对象。
  • 适用于无会话状态的Bean如:(DAO组件,Service组件)

【使用演示】:

  • 配置bean(建议不书写作用域,默认就是单例的)
<bean id="cat"  class="cn.simplelife.domain.Cat" scope="singleton"/>
  • 获取bean
package cn.simplelife.domain;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @ClassName CatTest
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 9:55
 * @Version 1.0
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:cat.xml")
public class CatTest {

    @Autowired
    private Cat cat;
    
    @Autowired
    private Cat cat1;
    @Test
    public void getCat() {
        System.out.println(cat);
        System.out.println(cat1);
    }
}
  • 运行截图
    在这里插入图片描述

3、常用作用域——prototype

【特点】:

  • 对于每个请求该bean的请求都会创建一个新的bean对象
  • 存放位置并不是在Spring容器中,而是在内存中。主要是防止容器中的垃圾对象增多。

【使用演示】:

  • 配置bean
<bean id="cat"  class="cn.simplelife.domain.Cat" scope="prototype"/>
  • 获取bean
package cn.simplelife.domain;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @ClassName CatTest
 * @Description
 * @Author simplelife
 * @Date 2022/11/18 9:55
 * @Version 1.0
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:cat.xml")
public class CatTest {

    @Autowired
    private Cat cat;
    
    @Autowired
    private Cat cat1;
    @Test
    public void getCat() {
        System.out.println(cat);
        System.out.println(cat1);
    }
}
  • 运行截图

4、Spring中Bean的生命周期

Sping容器可以管理singleton的作用域的Bean的生命周期,在此作用域下,Spring能够精确的知道该Bean是何时创建的,何时初始化、何时销毁。
对于prototype的Bean实例,Spring只负责创建,并不会跟踪其生命周期。

1、图示Spring中Bean的生命周期

在这里插入图片描述

2、过程叙述

  1. 根据配置情况调用Bean的构造方法或工厂方法实例化Bean。
  2. 利用依赖注入完成Bean构造方法或工厂方法实例化Bean。
  3. 如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName(String var1)方法传入当前Bean的id值。
  4. 如果Bean实现了BeanFactoryAware接口,则Spring调用setBeanFactory(BeanFactory var1)方法,传入当前实例的引用。
  5. 如果Bean实现了ApplicationContextAware接口,则Spring调用setApplicationContext(ApplicationContext var1)方法,传入当前ApplicationContext实例的引用。
  6. 如果BeanPostProcessor和Bean关联,则Sping会调用postProcessBeforeInitialization()方法对Bean进行加工操作,SpringAOP就是利用它实现的。
  7. 如果Bean实现了InitializingBean接口,则Spring调用afterPropertiesSet()方法。
  8. 如果配置文件中配置了初始化方法,调用该初始化方法。
  9. . 如果BeanPostProcessor和Bean关联,则Sping会调用postProcessAfterInitialization()方法。
  10. 如果该bean是单例的就将bean存放在Spring的缓存池中,如果是多例的就交给调用者。
  11. 如果Bean实现了DisposableBean接口,则Spring会调用destroy()方法将Spring中的bean销毁。如果配置文件提供了销毁方法,调用配置文件中的销毁方法。

5、Bean的装配方式

1、基于XML的装配

Sping在实例化Bean的过程中,Spring首先会调用Bean的默认构造方法来实例化Bean对象,然后通过反射的方式调用Setter方法注入属性值。
因此这种方式注入必须满足两个条件:
1、提供一个无参的构造器。
2、提供setter方法。

  • 代码演示

【书写一个User类】

package cn.simplelife.domain;

import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * @ClassName User
 * @Description
 * @Author simplelife
 * @Date 2022/11/21 20:52
 * @Version 1.0
 */

@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class User {
    private String username;
    private Integer password;
    private List<String> list;
}

【书写配置文件】:

<?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:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--使用构造器注入-->
    <bean id="user" class="cn.simplelife.domain.User">
        <constructor-arg index="0" value="tom"/>
        <constructor-arg index="1" value="123"/>
        <constructor-arg index="2">
            <list>
                <value>eat</value>
                <value>sleep</value>
                <value>play</value>
            </list>
        </constructor-arg>
    </bean>

    <!--使用设置注入-->
    <bean id="user2" class="cn.simplelife.domain.User">
        <property name="username" value="杰瑞"/>
        <property name="password" value="123456"/>
        <property name="list">
            <list>
                <value>1</value>
                <value>2</value>
                <value>3</value>
            </list>
        </property>
    </bean>
</beans>

【书写测试类】:

package cn.simplelife.domain;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import static org.junit.Assert.*;

/**
 * @ClassName UserTest
 * @Description
 * @Author simplelife
 * @Date 2022/11/21 20:59
 * @Version 1.0
 */

public class UserTest {

    @Test
    public void getUserBean() {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:user.xml");
        User user = applicationContext.getBean("user", User.class);
        System.out.println("user = " + user);
        User user2 = applicationContext.getBean("user2", User.class);
        System.out.println("user2 = " + user2);
    }
}

【运行结果】:
在这里插入图片描述

2、基于Annotation的装配

  • @Component该注解是一个泛化的概念,仅仅表示一个组件对象(Bean),可以作用在任何层次上。

  • @Repository该注解用于将数据访问层(Dao层)的类标识为Bean,即注解数据访问层Bean,其功能@Componet相同

  • @Service该注解用于标注一个业务逻辑组件类(Service层),其功能与@Component相同

  • @Controller该注解用于标注一个控制器组件类(SpringMVC的Controller),其功能与@Componet相同

  • @Autowired该注解可以对类成员变量、方法及构造方法进行标注,完成自动装配的功能。通过使用@Autowired来消除setter和getter方法。默认按照Bean的类型进行装配。

  • @Resource该注解与@Autowired的功能一样,区别在于该注解默认是按照名称来装配的,只有当找不到与名称匹配的Bean时才会按照类型来装配注入;而@Autowired默认按照Bean的类型进行装配,如果想按照名称来装配注入,则需要和@Qualifier注解一起使用。
    @Resource注解有两个属性—name和type。name属性指定Bean实例名称,即按照名称来装配注入;type属性指定Bean类型,即按照Bean的类型进行装配。

  • @Qualifier该注解与@Autowired注解配合使用。当@Autowired注解需要按照名称来装配注入时,需要和该注解一起使用,Bean的实例名称由@Qualifier注解的参数指定。

详解SpringBean的生命周期作用域及实现方式
08-31
在本文,我们介绍SpringBean的生命周期作用域及实现方式。了解Bean的生命周期作用域是非常重要的,因为它们决定了Bean的生命周期和可用性。同时,掌握了Bean的实现方式,可以更好地使用Spring框架来管理...
Bean 的实例化装配
m0_72151428的博客
09-22 1544
Bean的实例化装配的实验与讲解
Spring篇 深入了解什么是Bean装配方式(自动装配)、生命周期,一篇文章带你精通!
最新发布
我热爱学习,也乐于分享。无论是科技前沿的洞见,还是生活中的小技巧,我都会在这里与你分享。我相信,知识就是力量,而分享则能让这份力量得到更好的传递。
11-25 1200
1、ByName必须保证Bean的属性字段名唯一,并且如果一个Bean有某个Bean的属性,我们进行ByName装配的时候必须保证applicationContext.xml这个Bean注册的id和Beanset方法的参数一致。Bean的生命周期,就是Bean从创建到销毁,所经历的各种方法的调用。
SpringBean(配置、实例化作用域生命周期装配方式
weixin_51423778的博客
09-15 594
SpringBean(配置、实例化作用域生命周期装配方式
SpringBean的配置、实例化作用域生命周期装配方式
Haa__的博客
07-29 1186
1 Bean的配置 1.1 概述   举个生动的例子吧。如果把Spring看作是一个大工厂的话,那么Bean就是这个工厂里的产品。当我们要使用这些产品的时候,就需要工厂为我们生产,工厂还需要管理这些产品,这就需要我们告诉工厂我们需要哪些产品(Bean),以及需要使用何种方式将这些产品(Bean)装配到一起。   Bean的本质其实就是Java的类,而SpringBean其实就是对实体类的引用,来生产Java类对象,从而实现生产和管理Bean。   在Spring容器,支持两种格式的配置文件:Prop
Spring框架bean的实例化方式作用域生命周期
弱水三千、先干为敬
09-03 421
1、bean的实例化方式 bean(类对象)的实例化方式: ①.构造器实例化(无参数构造器,与构造器的访问权限无关),最标准,使用最多。 ②.静态工厂方法实例化:解决系统遗留问题(了解) ③.实例工厂方法实例化:解决系统遗留问题(了解) ④.实现FactoryBean接口实例化:实例工厂变种:集成其他框架使用:SqlSessionFactoryBean 这里重点介绍第一种和第四种方式! 1.1 构...
JSP Spring 自动化装配Bean实例详解
10-20
使用注解自动装配相比XML配置更加简洁直观,但是要求开发者熟悉Spring的相关注解,并且对Bean的生命周期作用域有一定的了解。此外,@Autowired注解是按类型自动装配,如果有多个相同类型的Bean,则需要进一步的...
浅谈springscope作用域
08-28
spring 的 scope 作用域 spring 的 scope 作用域是指在spring 框架bean 的实例化生命周期的...spring 的 scope 作用域是对 bean 实例化生命周期的管理,帮助开发者更好地管理 bean 的生命周期作用域
spring装配bean实例代码
07-23
总结,Spring装配Bean的XML配置方式Spring框架的基础,通过定义Bean、设置属性、处理生命周期和依赖关系,我们可以构建出复杂的应用程序结构。在实际开发,结合注解配置和XML配置的混合使用,可以更加灵活地管理...
spring入门教程之bean的继承与自动装配详解
08-28
Bean的依赖管理是通过`depends-on`属性来完成的,它可以确保指定的Bean在当前Bean实例化之前已经被创建。例如: ```xml <bean id="car" class="com.sunny.beans.autowire.Car" p:brand="奥迪" p:price="30000"/> ...
Spring Bean的作用域为singleton和prototype的区别
weixin_45193791的博客
08-30 452
singleton singleton 是 Spring 容器默认的作用域。当 Bean 的作用域为 singleton 时,Spring 容器只会存在一个共享的 Bean 实例。该 Bean 实例将存储在高速缓存,并且所有对 Bean 的请求,只要 id 与该 Bean 定义相匹配,都会返回该Bean实例。 例1 Hello类代码如下 package com.wen.pojo; public class Hello { private String str; public void
Spring bean作用域bean实例化bean声明周期总结
qq_31564573的博客
06-05 178
bean作用域bean实例化bean声明周期总结
Spring Bean的作用域及其生命周期
weixin_44058932的博客
07-01 249
因为Spring控制反转的机制,我们对于对象实例的控制权交给了Spring容器完成,在使用时再注入到程序当,再对对象之间的依赖关系进行解耦。而Spring容器之所以能做到这些功能,都依靠Spring配置文件使用到的元素—Bean。 我们可以把Spring容器看作是一个工厂,而Bean就是工厂被管理和产出的产品,当我们需要管理Bean时,告诉Spring容器就可以。 1. Bean的作用域 SpringBean有五种作用域,分别为singleton、prototype、request、session和g
springbean的生命周期作用域
qq_49755675的博客
07-03 1494
bean的生命周期作用域是面试题经常会问到的问题,当然也不用去了解太深,过高的追求深度反而不好理解,但是一定要了解熟悉最基本的内容,我总结了一篇比较容易理解的版本,非常适合刚入门的新手去参考,本篇重点介绍了单例和原型模式下的bean的生命周期不同过程的对比,也简单介绍bean的六大作用域。...
Springbean对象的装配方式作用域生命周期
weixin_43190860的博客
12-18 292
1. bean对象装配的三种方式(就是在配置文件写一个bean标签) ①内部new一个实现类,调用默认构造器 <bean id="userService" class="com.diao.service.UserServiceImpl"></bean> ②通过静态工厂方法 <!--在静态方法返回一个实例对象,通过调用工厂类的静态方法获取实例对象--> &l...
SpringBean——配置、实例化生命周期装配方式
qq_44871613的博客
12-01 385
Bean的配置 通常一个普通的Bean只需要定义id(或者name)和class两个属性就可以了 Bean的实例化 1.构造器实例化(最常用的方式) <!-- 通过构造器实例化——默认的无参构造方法来实例化Bean --> <bean id="bean1" class="com.daier.instance.constructor.Bean1"/> 2.静态工厂方式实例化 <bean id="bean2" class="com.daier.instance...
Bean的配置以及实例化
qq_56444564的博客
03-05 166
Spring容器支持XML和Properties两种格式的配置文件,在实际开发,最常用的是XML格式的配置文件。XML是标准的数据传输和存储格式,方便查看和操作数据。在Spring,XML配置文件的根元素是,元素包含子元素,每个子元素可以定义一个Bean,通过元素将Bean注册到Spring容器。熟悉Spring构造方法实例化,能够通过构造方法实例化Bean。
Spring - Spring一个Bean装配过程以及Bean实例化过程
迦南的专栏
02-23 970
主要流程: 1、读取配置文件 2、实例化bean和填充bean属性 这个粗略的流程感觉更像是一个需求,有了这个需求,那么spring内部是怎么处理的呢? 我们知道spring的两个核心接口BeanFactory和ApplicationContext。BeanFactory主要定义容器的核心方法,ApplicationContext加以扩展,主要使用的还是ApplicationContext。在ApplicationContext的子类,AbstractApplicationContext的ref
Spring 三种实例化 Bean 的方式Bean 常用配置、作用域生命周期、属性注入、注解方式
支棱起来
11-26 427
Spring 工厂 三种实例化 Bean 的方式 使用类构造器实例化(默认无参数) Bean1.java public class Bean1 { public Bean1(){ System.out.println("Bean1被实例化了..."); } } applicationContext.xml <bean id="bean1" class="com.learn.ioc.demo2.Bean1"/> 测试类 @Test public void
Spring框架详解:Bean配置与实例化生命周期管理
本资源是关于Java Web开发的学习资料,以Spring框架为核心,涵盖了SpringBean概念、配置、实例化作用域生命周期装配方式等关键知识点。在第二章,主要讨论以下几个要点: 1. **Bean的实例化**:Spring...
写文章

热门文章

  • 11、Vue的生命周期 48974
  • JavaScript实现简单登录验证(密码写固定) 5548
  • 08、VUE计算属性 4647
  • jsp+jdbc+servlet实现简单登录(MVC模式) 3381
  • 01、Vue简易版网易云——项目简介 3122

分类专栏

  • Python 付费 2篇
  • 计算机毕业设计 4篇
  • Spring 16篇
  • 后端Java常见错误记录 6篇
  • JavaScript高级程序设计第四版笔记 12篇
  • Vue项目 6篇
  • VUE 15篇
  • 资源 1篇
  • node 10篇
  • AJAX 11篇
  • JavaScript 22篇
  • HTML5+CSS3 14篇
  • Java 10篇
  • javaWeb 18篇
  • 服务器部署 1篇

最新评论

  • 15、JavaScript BOM-操作浏览器

    执手天涯@: 增加数据集时间,然后继续写入就好喽

  • 15、JavaScript BOM-操作浏览器

    2301_76915493: 请问再加一列录入时间该怎么写

  • 01、Vue简易版网易云——项目简介

    执手天涯@: 可能是后端接口失效了,很久没有更新啦

  • 01、Vue简易版网易云——项目简介

    KingのForever: 我运行出来为什么没效果

  • JavaScript实现简单登录验证(密码写固定)

    libmsn: 怎么不好使

大家在看

  • 24小时搜书网,zlibrary官网登录入口网址 369
  • 债券的基础知识(一)
  • 基于SpringBoot+Vue的在线商城系统+万字论文+Mp4演示
  • 基于SpringBoot+Vue的医院资源管理系统+万字论文+Mp4演示 306
  • python画图|图例设置基础教程 752

最新文章

  • 基于 SpringBoot+Vue的——陪玩平台
  • 基于SpringBoot+Vue的美发店会员管理系统
  • 基于SpringBoot+Vue的家教管理系统
2024年5篇
2023年9篇
2022年115篇
2021年28篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执手天涯@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家东营玻璃钢花盆花器山西多彩玻璃钢雕塑制作湖南玻璃钢雕塑公司成型玻璃钢雕塑甘南景区玻璃钢雕塑哪家好玻璃钢动物雕塑批发北京玻璃钢雕塑定做公司重庆环保玻璃钢雕塑价位玻璃钢仿真动物雕塑价格咸阳市玻璃钢雕塑浙江校园玻璃钢雕塑价格济宁市玻璃钢雕塑厂合肥商场亮化美陈常见玻璃钢雕塑摆件制造2022商场冰雪美陈玻璃钢翻模的雕塑上色商场休闲区美陈方案玻璃钢玩偶雕塑供货路边玻璃钢花盆图片价格西藏玻璃钢园林雕塑蓟县玻璃钢雕塑张界玻璃钢雕塑凳子玻璃钢花盆阿里巴昌平玻璃钢动物雕塑广东佛像玻璃钢雕塑哪家便宜贵州玻璃钢仿铜雕塑福建漳州玻璃钢雕塑厂家北京特色商场美陈价钱舟山个性化玻璃钢雕塑哪家便宜平凉仿真人物玻璃钢雕塑哪家好香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化