Spring 4.2新特性-对java8默认方法(default method)定义Bean的支持

2.1 默认方法(default method)

  • java8引入了一个default medthod;
  • 用来扩展已有的接口,在对已有接口的使用不产生任何影响的情况下,添加扩展
  • 使用default关键字
  • Spring 4.2支持加载在默认方法里声明的bean

2.2

  • 将要被声明成bean的类
public class DemoService {
    public void doSomething(){
        System.out.println("find bean in default method");
    }
}
  • 在接口的默认方法里定义bean
package com.wisely.spring4_2.defaultMethod;

import org.springframework.context.annotation.Bean;
public interface DemoServiceConfig {

    @Bean 
    default DemoService DemoService(){
        return new DemoService();
    }

}
  • 配置类
package com.wisely.spring4_2.defaultMethod;

import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig implements DemoServiceConfig{



}

  • 运行
package com.wisely.spring4_2.defaultMethod;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {
         AnnotationConfigApplicationContext context =
                    new AnnotationConfigApplicationContext("com.wisely.spring4_2.defaultMethod");
         DemoService ds = context.getBean(DemoService.class);
         ds.doSomething();
    }
}

  • 输出结果
find bean in default method

猜你喜欢

转载自wiselyman.iteye.com/blog/2217069