Spirng bean

spring bean
作用域(scope)

作用域 描述
singleton 单例模式,每一个spring context中只有一个实例
prototype 每次调用一个getBen方法都会产生一个新的对象
request 每个request请求产生一个实例
session 每个htttp session中产生一个实例
application(global session) 每个servelet context 产生一个实例,这个bean是以一个属性存在于servelet context中。与singleton不同在于,一个web应用中可能存在多个spring context实例
WebSocket WebSocket作用域与WebSocket会话的生命周期相关联,适用于WebSocket应用程序上的STOMP

创建bean方式:

  1. 使用Spring XML方式配置,该方式用于在纯Spring 应用中,适用于简单的小应用,当应用变得复杂,将会导致XMl配置文件膨胀 ,不利于对象管理。
<bean id="xxxx"  class="xxxx.xxxx"/>
  1. 通过标注注解定义bean,然后同过ComponentScan扫描加载bean
@Component
@Service
@Controller
@Repository
@RestController
public class TestBean {
}
注解名称 描述
@Component 创建bean最基本方式,标注bean
@Controller, @RestController 派生自@Component注解,此注解标注bean为spring mvc的controller层的bean, Spring MVC将使用这些bean接收处理客户request
@Service 派生自@Component注解,此注解标注bean为spring mvc的service层的bean, 用于处理业务逻辑
@Repository 派生自@Component注解,此注解标注bean为spring mvc的repository层的bean, 此bean一般用于处理数据层的业务
  1. 通过bean factory 来创建bean, @Configuration,@Bean配合使用
    @Configuration, 标注工厂类为配置类
    @Bean, 标注工厂类里边的方法生成bean,我们还可以为bean定义多个别名
@Configuration
public class TestBeanFactory {

    @Bean({"bean1","bean2"})
    public Object getBean(){
        return null;
    }
}

Bean生命周期
转载 http://www.cnblogs.com/zrtqsk/p/3735273.html
Spirng bean_第1张图片Spirng bean_第2张图片Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:

1、Bean自身的方法  :  这个包括了Bean本身调用的方法和通过配置文件中的init-method和destroy-method指定的方法

2、Bean级生命周期接口方法  :  这个包括了BeanNameAware、BeanFactoryAware、InitializingBean和DiposableBean这些接口的方法

3、容器级生命周期接口方法  :  这个包括了InstantiationAwareBeanPostProcessor 和 BeanPostProcessor 这两个接口实现,一般称它们的实现类为“后处理器”。

4、工厂后处理器接口方法  :  这个包括了AspectJWeavingEnabler, ConfigurationClassPostProcessor, CustomAutowireConfigurer等等非常有用的工厂后处理器  接口的方法。工厂后处理器也是容器级的。在应用上下文装配配置文件之后立即调用。

你可能感兴趣的:(spring,boot,spring,java,spring,boot)