Bean作用域和生命周期(+lombok安装)

1.Bean作用域的定义:Bean在Spring容器中的行为模式

lombok安装:

	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
		<version>1.18.26</version>
		<scope>provided</scope>
	</dependency>

2.Spring Bean作用域(Scope):

        单例模式(singleton):因为Spring在保证功能的同时还要保证性能,默认为单例模式;

                通常无状态的Bean使用该作⽤域。⽆状态表示Bean对象的属性状态不需要更新;

        原型模式(prototype):每次对该作⽤域下的Bean的请求都会创建新的实例;

        请求作用域(request):每次http请求会创建新的Bean实例,适用于Spring MVC;

        会话作用域(session):每次session会话共享bean,适用于Spring MVC;

        全局作用域(application):一个http servlet context 中共享一个bean,Spring MVC;

        HTTP WebSocket 作用域(websocket):网络长连接,只适用于Spring WebSocket;

3.Bean作用域的设置:

4.Spring的行流程:
        启动容器——跟据配置完成Bean的初始化——注册Bean对象到容器中——装配Bean的属性

5. Bean生命周期:

        

        Bean对象从诞生到销毁的整个生命过程;

Bean 的生命周期分为以下 5 部分:

1.实例化 Bean(为 Bean 分配内存空间)

2.设置属性(Bean 注入和装配)

3.Bean 初始化

  • 实现了各种 Aware 通知的方法,如 BeanNameAware、BeanFactoryAware、ApplicationContextAware 的接口方法;
  • 执行 BeanPostProcessor 初始化前置方法;
  • 执行 @PostConstruct 初始化方法,依赖注入操作之后被执行;
  • 执行自己指定的 init-method 方法(如果有指定的话);
  • 执行 BeanPostProcessor 初始化后置方法。

4.使用 Bean

5.销毁 Bean

其中 @PostConstruct 是构造方法,在初始化阶段执行,而 @PreDestroy 会在消耗之前执行。

Error creating bean with name 'bannerController': Unsatisfied dependency expressed through field 'service'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bannerService': Unsatisfied dependency expressed through field 'dao'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ds1BannerDao' defined in file [D:\shd\亚楠\全面预算\后端代码\cmb-sy-biz-tbm-srv\target\classes\com\cmb\sy\dao\BannerDao.class]: Cannot resolve reference to bean 'ds1SqlSessionTemplate' while setting bean property 'sqlSessionTemplate'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ds1SqlSessionFactory': Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [D:\shd\亚楠\全面预算\后端代码\cmb-sy-biz-tbm-srv\target\classes\mybatis\mapper\CorporateBuggetMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [D:\shd\亚楠\全面预算\后端代码\cmb-sy-biz-tbm-srv\target\classes\mybatis\mapper\CorporateBuggetMapper.xml]'. Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property 'submissionDate'. It was either not specified and/or could not be found for the javaType (lombok.Data) : jdbcType (null) combination. 这个错误怎么解决
10-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值