Spring bean 相关

beanId:bean的唯一标识

beanName

  • applicationContext.getBean("userService") 参数传递的其实是beanName。
  • 如果设置<bean>时没有设置beanName,会将beanId转化为beanName,没有beanId会将全类名设置为beanName,即com.xx.xx.UserServiceImpl
  • bean也可以设置多个别名

bean设置作用范围

 如果引入了MVC, 还会增加 request和session这两个作用范围,但基本不使用

bean的延迟加载:

bean的初始化方法和销毁方法: 

 

除此之外,也可以让类实现InitializingBean方法完成bean的初始化,她会在init_method之前、对象实例化之后执行

 

 bean的实例化

  • 构造方法实例化bean
    • 像以下这种配置,都是通过无参构造方法来实例化对象,然后根据property再去调用相应的set方法赋给属性值。 如果没有无参构造,则会报错
    • 有参构造,如果想直接使用有参构造,则需要提供有参构造方法,并在配置文件中增加 constructor-arg标签(有参构造很少用)

  • 工厂方法实例化对象
    • 静态工厂方法实例化对象

    • 动态工厂方法实例化对象

       

    •  FactoryBean规范延迟bean的实例化

       

       

 Bean的依赖注入方式

 

 list的注入:

  • 列表元素为基本类型

  • 列表元素为引用类型

 集合的注入:

 

 map的注入:

 

 properties注入:

 

 Bean的自动装配:

命名空间的种类

 

posted on 2024-05-06 15:09  mlllily  阅读(1)  评论(0编辑  收藏  举报