【无标题】

 @component和@Bean的区别?

在应用开发中用的非常多, @Component注解是一个通用注解,可以用在于任何类上。
包括普通java类,业务逻辑组件,持久化对象等等。
通过@Component注解spring自动创建该类的实例注入SpringIOC容器中。
@Bean是用于配置类中声明一个Bean的,它通常是用于配置类的方法上面,表示把这个
方法的返回对象注册到Spring IOC容器中。 通过@Bean自定义Bean的创建和初始化过程,
包括指定Bean的名称、作用域、依赖关系等。

1.用途不同
@Component用于标识普通的类
@Bean是在配置类中声明和配置Bean对象

2.使用方式不同
@Component是一个类级别的注解,Spring通过@ComponetScan注解扫描修饰并@Component
注解的一个类,并且把这些类注册到spring IOC容器里面。
@Bean注解修饰在方法层面,它是在配置类中去手动声明一个Bean的定义

3.控制权不同
@Component注解修饰的类是由Spring框架来创建和初始化
@Bean注解允许开发人员手动控制Bean的创建和配置的过程,在配置上更加灵活

为什么使用spring boot默认使用CGLIB作为代理实现方式?

问题分析:
spring boot默认使用CGLIB作为代理而不是使用JDK动态代理,这个选择实际上涉及到
底层字节码操作、反射和继承等多方面的一些问题。主要考查java代理模型、字节码操作
以及Spring AOP的了解。需要深入了解CGLIB和动态JDK动态代理的不同,以及为什么在
CGLIB在某些场景下会是更优的选择。
问题解答:
1.不依赖接口:CGLIB通过生成子类来实现,代理对象无论是赋值给接口还是实现类这两者
都是代理对象的父类。
2.性能优化:CGLIB使用底层字节码技术创建动态代理对象,在性能上通常是比JDK动态代
理好。
3.粒度的控制:CGLIB提供更多的选项来控制代理的行为,这在复杂的代理场景下非常的有
用。

总的来说,Spring Boot的默认使用CGLIB的主要原因是因为它的灵活性和性能优势,但是
具体项目中选型还是通过具体项目来定。

spring boot 中,如何定义starter?

问题解析:
在Spring boot中starter启动依赖是一个非常重要的特性,提供了第三方组件
bean的自动装配机制,依赖包版本的统一管理,模块化方式实现jar包统一管理。
很好的帮助开发人员减少了配置项的管理。
在springboot中创建一个自定义的starter组件,可以把一些通用的代码逻辑和
自动配置,形成一个复用的模块。 在其他项目中,可以直接使用这个starter组件
极大地提高代码的复用性和开发效率。
考查:是否理解springboot starter的原理和作用;
     是否有实际的编写自定义starter的经验;

 并将自动配置类放到的这个文件中;

相关推荐

  1. 标题

    2024-02-21 22:18:02       47 阅读
  2. 标题

    2024-02-21 22:18:02       44 阅读
  3. 标题

    2024-02-21 22:18:02       42 阅读
  4. 标题

    2024-02-21 22:18:02       49 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-21 22:18:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-21 22:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-21 22:18:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-21 22:18:02       20 阅读

热门阅读

  1. ChatGPT:你的数字生活助手

    2024-02-21 22:18:02       31 阅读
  2. 【数据结构】15 队列应用实例:多项式加法运算

    2024-02-21 22:18:02       30 阅读
  3. Liunx安装Dokcer和Docker-Compose

    2024-02-21 22:18:02       29 阅读
  4. Python3 TCP 客户端

    2024-02-21 22:18:02       27 阅读
  5. tcpdump 命令简记录

    2024-02-21 22:18:02       30 阅读
  6. Python实现XML文件转Excel

    2024-02-21 22:18:02       35 阅读
  7. vim 寄存器

    2024-02-21 22:18:02       24 阅读
  8. 算法日记-02完全背包和多重背包问题总结

    2024-02-21 22:18:02       24 阅读
  9. 2. C++ 线程的使用

    2024-02-21 22:18:02       25 阅读