SpringBean的理解和使用

首先,什么是bean?bean是一个核心的概念,它是由IOC(控制反转)容器管理的实例对象

简单的说,就是通过配置文件或者注解的形式去标记的java类的实例,然后由Spring去对这些实例进行创建,初始化,装配,依赖注入和生命周期的管理。

实例化:Spring通过反射机制创建Bean的实例。
依赖注入(DI):Spring自动将Bean依赖的其他Bean注入到需要它们的地方,无需硬编码创建依赖对象。
配置与管理:Bean的配置可以在XML文件中或通过注解(如@Component、@Service、@Repository、@Controller)完成,Spring读取这些配置来了解如何创建和管理Bean。
生命周期管理:Spring管理Bean从创建到销毁的整个过程,包括初始化回调、销毁回调等。

 怎么使用Bean?

1.定义Bean:
XML配置:在Spring的XML配置文件中使用<bean>标签定义。

 <bean id="exampleBean" class="com.example.ExampleClass"/>

注解配置:在类上使用@Component系列注解(如@Service、@Repository、@Controller),并在配置类中使用@Bean注解。

     @Service
     public class ExampleService {}
     
     @Configuration
     public class AppConfig {
         @Bean
         public ExampleService exampleService() {
             return new ExampleService();
         }
     }

 2.注入Bean:
Field注入:直接在需要使用Bean的类的字段上使用@Autowired或@Resource注解。

   @Autowired
     private ExampleService exampleService;

Setter注入:在setter方法上使用@Autowired注解。

     private ExampleService exampleService;
     
     @Autowired
     public void setExampleService(ExampleService exampleService) {
         this.exampleService = exampleService;
     }

构造器注入:提高代码的可测试性和清晰度。 

     private final ExampleService exampleService;
     
     @Autowired
     public YourClass(ExampleService exampleService) {
         this.exampleService = exampleService;
     }

3.使用Bean:一旦Bean被Spring容器创建并注入到需要它的类中,就可以直接使用这个Bean实例来执行业务逻辑。

什么是bean的生命周期?

Bean的生命周期
Bean定义的载入
Spring容器从配置源(如XML配置文件、注解、Java配置类)中读取Bean的定义信息。
Bean实例化
根据Bean定义,Spring使用Java反射机制创建Bean实例。这一步骤相当于执行了new操作。
属性注入(依赖注入DI)
Spring根据Bean定义中的依赖关系,通过反射或JDK动态代理为Bean实例注入所依赖的其他Bean或值。这包括自动装配(如@Autowired)和显式配置的属性值。
Aware接口回调:
如果Bean实现了Spring的Aware接口(如BeanNameAware、BeanFactoryAware、ApplicationContextAware等),Spring会调用这些接口的方法,让Bean知道它所在的环境信息,如Bean的名称、BeanFactory或ApplicationContext。
初始化前处理
在任何自定义初始化代码执行之前,如果Bean配置了@PostConstruct注解的方法,或在XML中定义了init-method,Spring会调用这些方法。
初始化Bean
Spring调用初始化方法来完成Bean的初始化工作。这包括实现InitializingBean接口的afterPropertiesSet方法,或者自定义的初始化方法。
Bean注册到容器
初始化完成后,Bean被注册到Spring容器中,此时Bean可以被应用程序使用。
使用Bean
应用程序通过Spring容器获取Bean实例并使用它。
销毁前处理
当容器关闭或Bean不再需要时,如果Bean实现了DisposableBean接口或配置了destroy-method,Spring会在Bean销毁前调用这些方法。
Bean销毁
最后,Spring负责清理和销毁Bean实例,释放资源。

什么是IOC?

在 Spring 中,类的实例化、依赖的实例化、依赖的传入都交由 Spring Bean 容器控制,而不是用 new 方式实例化对象、通过非构造函数方法传入依赖等常规方式。实质的控制权已经交由程序管理,而不是程序员管理,所以叫控制反转。

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值