配置Bean有哪几种方式?
- 基于xml:
<bean class=“com.tuling.UserService” id=“”> - 基于注解:
@Component(@Controller 、@Service、@Repostory)
前提:需要配置扫描包<component-scan> 反射调用构造方法 - 基于java类配置:
@Bean 可以自己控制实例化过程 - @Import 3种方式
额外扩展
Spring Bean 的作用域
Spring 容器在初始化一个 Bean 实例时,同时会指定该实例的作用域。Spring 5 支持 6 种作用域。
-
singleton
默认的作用域,单例模式。表示在 Spring 容器中只有一个 Bean 实例,Bean 以单例的方式存在。在容器启动前就创建好了对象,任何时间获取都是之前创建好的那个对象。配置方式可以缺省,因为是默认值。<bean class=“…”> -
prototype
原型作用域,多实例模式。每次调用 Bean 时都会创建一个新实例。Bean 以多实例的方式存在。容器启动默认不会创建多实例 bean,每次获取都会创建一个新的实例 bean 。配置方式为<bean class=“…” scope=“prototype”> -
request
在 web 环境下,每次 HTTP 请求都会创建一个 Bean 实例,该作用域只在当前 HTTP Request 内有效。 配置方式为 <bean class=“…” scope