IOC 组件扫描 Bean管理

Spring框架简介

        官网 : https://spring.io

        Spring是一个开源框架,为了解决项目的复杂开发过程而 创建的  整合了多方第三方软件

大大提高了开发效率,可维护性等问题.(低耦合)

        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jsPyvCdC-1623125484732)(RackMultipart20210608-4-9jbi5w_html_f6b76c48c15a8c6e.jpg)]

 IOC/DI 控制反转和依赖注入

        添加依赖  spring-context

        创建配置类 用@Configuration 将类交给spring 管理  使用@Bean声明Bean组件

         进行测试 利用AnnotationConfigApplicationContext 创建IOC容器 

        getBean("beanID",类型)

JavaBean

        javabean是为了规范java类的定义规则, 使程序规范一致

        1.需要定义包package

        2.有无参构造器

        3.需要实现序列化接口

        4.包含使用getXxx setXxx 声明的Bean属性xxx

                Bean属性(Bean Property) 就是指getXxx setXxx 方法

                对象属性(Object Field) 是指对象的实例数量

spring为了方便使用也支持对不标准的对象进行给管理

spring管理的对象时JavaBean对象 所以也称 为 javaBean容器/Bean容器/spring容器/IOC容器

Bean管理

 Bean的作用域

        singleton(单例的):在应用软件运行期间某个类型的对象只有一个 .无论什么时候取都是同一个对象(默认是单例的)

        prototype(原型): 在应用运行期间有多个同类型的对象存在,每次从容器中获取的对象都是新的

可通过 @Scope("prototype")设置

对象的生命周期管理

        对象从创建到销毁的过程 我们称为对象的生命周期

    java提供了两个生命周期的方法 @PostConstruct 创建对象后执行

                                                          @PreDestroy  容器关闭销毁对象时执行

        需要导入依赖    java.annotation-api

     第二种: 在@Bean注解管理bean时 在属性initMethod+方法名(对象创建后执行)

                                                                        destroyMethod+方法名(关闭容器时执行)

        如果为prototype(原型) 每次都会创建新的对象 spring为了避免内存泄漏 不会缓存对象的引用 所以spring关闭的时候就无法处理对象的销毁方法了

慵懒初始化

        为了提高性能, 我们将很少用的bean 在需要的时候在进行加载(慵懒初始化) 

注解为 @Lazy

        可以与@Component 一起使用   也可以与@Bean一起使用

@Import导入配置

        spring提供了多配制功能 利用@Import注解可以同时使用多个配置类

        分模块开发,分层开发都会用到   分模块开发是 甲乙两员工都在修改配置 这时就需要有人进行解决冲突 合并配置文件 开发效率下降 问题也多

        两个人各自写 自己的配置文件  用Import进行合并

        @Configuration

        @Impor(a.clss,B.class)

 

 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值