Spring5学习记录

Spring5学习记录,第1张

将一个类声明为Spring的bean的注解有哪些?

我们一般使用@Autowired注解自动装配bean,要想把类标识成可用于@Autowired注解自动装配的bean的类,采用以下注解可实现:

例如:

  • @Component︰通用的注解,可标注任意类为Spring组件。如果一个Bean不知道属于哪个层,可以使用Component注解标注。
  • @Repository:对应持久层即Dao层,主要用于数据库相关 *** 作。
  • @Service:对应服务层,主要涉及一些复杂的逻辑,需要用到Dao层。
  • @Controller:对应Spring MVC 控制层,主要用户接受用户请求并调用Service层返回数据给前端页面。
BeanFactory和ApplicationContext区别?
  1. BeanFactory采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring配置问题。如果Bean的某一个属性没有注入,BeanFactory加载后,直至第一次使用调用getBean方法才会抛出异常。
  2. ApplicationContext,他是在容器启动时,一次性创建了所有的Bean。这样在容器启动时,我们就可以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。ApplicationContext启动后预载入所有的单实例Bean,通过预载入单实例bean,确保当你需要的时候,不需要等待,因为他们已经创建好了。
  3. 相对于基本的BeanFactory,ApplicationContext唯一的不足是占用内存空间。当应用程序配置Bean较多时,程序启动较慢。
  4. BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式被创建,如使用ContextLoader.
  5. BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFatory需要手动注册,而ApplicationContext则是自动注册。

从字面上 BeanPostProcessor 的意思就是 Bean 的后置处理器。该接口我们也叫后置处理器,作用是在Bean对象在实例化和依赖注入完毕后,在显示调用初始化方法的前后添加我们自己的逻辑。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/905351.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-15
下一篇2022-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存