关于Spring中Bean的创建进行更多方面的控制
我们知道Spring Boot 中一个@Controller
修饰的Bean是在什么时间被创建的,那么这个Bean创建时间能不能由我们管控?答案是肯定的
关于Spring中Bean的创建,除了配置装配属性外,我们还可以进行更多方面的控制。
1,首先,我们可以控制Bean是单例还是可以生成多个对象的。
在Spring中,Bean默认是单例的,如果想每次请求都生成一个新的Bean对象,可以在定义Bean时,在<bean>
标签中配置scope属性为prototype,那么,就会允许该Bean可以被多次实例化。
2,利用工厂方法来创建Bean。
一般情况下,Bean的创建是通过构造函数来完成的,Bean创建完成后,再注入属性完成Bean的相关初始化和配置工作。除了使用构造函数创建Bean之外,我们还可以使用工厂方法来创建Bean,这个可以通过配置<bean>标签的factory-method属性来指定类中用于生成Bean的工厂方法的名称。
3,初始化和销毁Bean。
我们可以通过配置,在Spring完成Bean的创建后,进行一些初始化工作。也可以在Spring从容器中删除Bean后,进行一些清理工作。进行初始化时,通过配置<bean>的init-method属性来执行初始化需要调用的方法,通过配置<bean>的destroy-method属性来指定进行清理工作时需要调用的方法。
This is the end。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
Spring Boot如何动态创建Bean示例代码
前言 本文主要给大家介绍了关于Spring Boot动态创建Bean的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. SpringBoot测试版本:1.3.4.RELEASE 参考代码如下: package com.spring.configuration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.su
-
Spring实战之调用实例工厂方法创建Bean操作示例
本文实例讲述了Spring实战之调用实例工厂方法创建Bean操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" x
-
Spring基于ProxyFactoryBean创建AOP代理
Spring 通知类型 通过前面的学习可以知道,通知(Advice)其实就是对目标切入点进行增强的内容,Spring AOP 为通知(Advice)提供了 org.aopalliance.aop.Advice 接口. Spring 通知按照在目标类方法的连接点位置,可以分为以下五种类型,如表 1 所示. 表 1 Spring 通知的 5 种类型 名称 说明 org.springframework.aop.MethodBeforeAdvice(前置通知) 在方法之前自动执行的通知称为前置通知,可以
-
JSP 开发之Spring Boot 动态创建Bean
JSP 开发之Spring Boot 动态创建Bean 1.通过注解@Import导入方式创建 a.新建MyImportBeanDefinitionRegistrar注册中心 Java代码 import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.GenericBeanDefinition; import org
-
Spring的实例工厂方法和静态工厂方法实例代码
Spring的实例工厂方法和静态工厂方法都可以用来实例化bean,本文我们就来看看相关实例. 静态工厂方法:直接调用静态方法可以返回Bean的实例 package com.zhu.string.factory; import java.util.HashMap; import java.util.Map; public class StaticCarFactory { /** * 静态工厂方法:直接调用静态方法可以返回Bean的实例 * */ private static Map<String
-
Spring工厂方法创建(实例化)bean实例代码
目标明确 简单叙述一下本文想要解决的问题:如何在Spring中不再使用Spring创建Bean实例,而是把Bean创建过程转移到开发者手中. 思路清晰 创建Bean实例的方式: 1) 通过构造器(有参或无参) 方式: <bean id="" class=""/> 2) 通过静态工厂方法 方式: <bean id="" class="工厂类" factory-method="静态工厂方法"/
-
Spring如何使用注解的方式创建bean
这篇文章主要介绍了Spring如何使用注解的方式创建bean,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 第一种使用配置类的方式 1.创建一个bean package com.springbean; public class Person { private String name; private Integer age ; public Person(String name, Integer age) { this.name = name
-
详解Spring Boot 使用Java代码创建Bean并注册到Spring中
从 Spring3.0 开始,增加了一种新的途经来配置Bean Definition,这就是通过 Java Code 配置 Bean Definition. 与Xml和Annotation两种配置方式不同点在于: 前两种Xml和Annotation的配置方式为预定义方式,即开发人员通过 XML 文件或者 Annotation 预定义配置 bean 的各种属性后,启动 spring 容器,Spring 容器会首先解析这些配置属性,生成对应都?Bean Definition,装入到 DefaultL
-
Spring创建Bean的6种方式详解
前言 本文讲解了在Spring 应用中创建Bean的多种方式,包括自动创建,以及手动创建注入方式,实际开发中可以根据业务场景选择合适的方案. 方式1: 使用Spring XML方式配置,该方式用于在纯Spring 应用中,适用于简单的小应用,当应用变得复杂,将会导致XMl配置文件膨胀 ,不利于对象管理. <bean id="xxxx" class="xxxx.xxxx"/> 方式2: 使用@Component,@Service,@Controler,@R
-
Spring BPP中如何优雅的创建动态代理Bean详解
v一.前言 本文章所讲并没有基于Aspectj,而是直接通过Cglib以及ProxyFactoryBean去创建代理Bean.通过下面的例子,可以看出Cglib方式创建的代理Bean和ProxyFactoryBean创建的代理Bean的区别. v二.基本测试代码 测试实体类,在BPP中创建BppTestDepBean类型的代理Bean. @Component public static class BppTestBean { @Autowired private BppTestDepBean d
-
Spring实战之使用静态工厂方法创建Bean操作示例
本文实例讲述了Spring实战之使用静态工厂方法创建Bean操作.分享给大家供大家参考,具体如下: 一 配置 <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" x
-
spring实现bean对象创建代码详解
我以一个简单的示例解构spring是怎样管理java对象的. 首先,定义一个简单的pojo,代码如下: package com.jvk.ken.spring; public class Demo { private String name; public Demo() { name="I'm Demo."; } public void printName() { System.out.println(name); } public void setName(String name) {
随机推荐
- js操作iframe父子窗体示例
- js+html制作简单日历的方法
- 利用python求相邻数的方法示例
- 在ASP.NET 2.0中操作数据之二十:定制数据修改界面
- 深入解析php中的foreach问题
- php设计模式介绍之值对象模式第1/5页
- Android基于socket实现的简单C/S聊天通信功能
- PHP实现批量生成App各种尺寸Logo
- Golang编程实现生成n个从a到b不重复随机数的方法
- DOM 基本方法
- getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
- JQuery的$和其它JS发生冲突的快速解决方法
- jQuery选择器及jquery案例详解(必看)
- JavaScript插入动态样式实现代码
- 一个超简单的JS拖拽实现代码(兼容IE,Firefox)
- 探讨js中的双感叹号判断
- Android中自定义进度条详解
- lnmp环境中如何为nginx开启pathinfo
- javaWeb使用Kaptcha组件生成验证码
- Android界面刷新的方法分享