Spring框架核心概念(一)
2020-12-13 03:30
标签:编译 strong simple 除了 ati 框架 span lis 文件中 1、通过构造函数实例化:通过这种方法,配置文件写法如下 2、使用静态工厂方法实例化: 当使用此方法时,除了要设置class的值,还需要设置factory-method属性来指定创建Bean实例的方法。配置文件写法如下: 对应的类应用如下方式定义: 3、使用工厂实例方法实例化: 此方法与第2个方法类似,使用这种方法时,class属性设置为空,而factory-method属性的值必须指定当前(或其祖先)容器中包含工厂方法的bean名称,而该工厂bean的工厂方法本身必须通过factory-method属性来指定。其中,一个工厂类中可以有多个工厂方法。配置文件写法如下: 以上配置文件中的类的定义: 1、基于构造函数: 通过调用具有多个参数的构造函数的容器来完成的,每个参数标识依赖关系,这与调用静态工厂方法来构造bean几乎是等效的。 在上述代码中,配置文件中需要使用 开发者也可以通过参数的名称来去除二义性,但需要注意的是,用这种方法工作的代码必须启用调试标记编译,开发者也可以使用@ConstructorProperties标注来显示声明构造函数的名称。参考代码如下 2、基于setter方法: 通过调用无参数构造函数或无参数静态工厂方法来实例化bean后,通过调用setter方法完成的。 1、@configuration: 用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义。 注意:@Configuration注解的配置类有如下要求:@Configuration不可以是final类型;@Configuration不可以是匿名类;嵌套的configuration必须是静态类。 2、@Bean注解注册bean,同时可以指定初始化和销毁方法 @Bean(name="testBean",initMethod="start",destroyMethod="cleanUp") 3、spring中bean的scope属性,有如下5种类型: singleton表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例。 4、@Configuation等价于 @Bean等价于 @ComponentScan等价于 Spring框架核心概念(一) 标签:编译 strong simple 除了 ati 框架 span lis 文件中 原文地址:https://www.cnblogs.com/ma-zhuo/p/11065753.html一、实例化Bean的方式
1 bean id="exampleBean" class="com.mazhuo.ExampleBean">
2 bean>
1 bean id="exampleBean" class="com.mazhuo.ExampleBean" factory-methord="creatBean">
2 bean>
1 public class ExampleBean{
2 private static ExampleBean exampleBean = new ExampleBean();
3 private ExampleBean(){}
4 public static ExampleBean creatBean(){
5 return exampleBean;
6 }
7 }
1
2 bean id="serviceLocator" class="com.mazhuo.ServiceLocator">
3
4 bean>
5
6
7 bean id="clientService" factory-bean="serviceLocator" factory-methord="creatBean">
8 bean>
1 public class ServiceLocator {
2 private static ClientService clientService = new ClientService();
3 private ServiceLocator(){}
4 public ClientService creatBean() {
5 return clientService;
6 }
7 }
二、Bean注入方式
1 public class SimpleMovieLister {
2 //SimpleMovieLister依赖于MovieFinder
3 private MovieFinder movieFinder;
4 //Spring容器可以通过构造函数注入MovieFinder
5 public SimpleMovieLister(MovieFinder movieFinder) {
6 this.movieFinder = movieFinder;
7 }
8 }
1 public class ExampleBean {
2 private int year;
3 private String name;
4 @ConstructorProperties({"year","name"})
5 public ExampleBean(int year, String name){
6 this.name = name;
7 this.year = year;
8 }
9 }
三、自动装配
prototype表示每次获得bean都会生成一个新的对象。
request表示在一次http请求内有效(只适用于web应用)。
session表示在一个用户会话内有效(只适用于web应用)。
globalSession表示在全局会话内有效(只适用于web应用)。
上一篇:jquery 常用api