2. Spring 4.2.3前瞻-对java8默认方法(default method)定义Bean的支持

翻译 2015年11月19日 22:33:53

2.1 默认方法(default method)

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

2.2

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

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

    @Bean(name="demoService")
    default DemoService DemoService(){
        return new DemoService();
    }

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

import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig implements DemoServiceConfig{

}

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

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

相关文章推荐

Java 9 HTTP/2的支持功能前瞻

HTTP/2进行了一些必要改进,使旧的基于文本的协议变得焕然一新,并抛弃了令人讨厌的HTTP/1.1中的很多工作流程,但是它并未解决所有已知的问题。...

Java8中的 Default 方法

第二章  Default 方法 为什么要有Default方法 在Java8发布之际,有件事情就显得非常重要,即在不破坏java现有实现架构的情况下能往接口里增加新方法。引入Default方法到Ja...

如何获得方法的default修饰符?JVM规范并没有java8的defalut修饰符

java8的很多特性是java虚拟机层面实现的,比如lamda表达式,而不是编译器是实现。但是java8新增的default修饰符,其实就是在接口定义的非抽象的public的修饰符。我们看下API: ...
  • kkgbn
  • kkgbn
  • 2017年05月06日 17:04
  • 305

JAVA8接口中的default、static方法使用注意事项

JAVA8中接口interface引入方法实现的猜想在JAVA8之前java中的接口类型旨在定义类型的接口规约,并不能拥有自己的方法实现,具体实现完全交由实现类自己完成。以普通人和中上阶层为例,为各自...

Java8揭秘(三)Default 方法

第二章  Default 方法 为什么要有Default方法 一旦Java8发布,有件事情就显得非常重要,即能在不破坏现有实现架构的情况下往接口里增加方法。之所以引入Default方法到Java8...

Java8中接口中可添加的default修饰方法体

我们都知道在Java语言的接口中只能定义方法名,而不能包含方法的具体实现代码。接口中定义的方法必须在接口的非抽象子类中实现。下面就是关于接口的一个例子: 1 2 ...

Java 8的default方法详解

Java 8的default方法详解作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsJava 8新增了default方法,它可以在接口添加新功能特性,而且还...
  • chszs
  • chszs
  • 2015年01月11日 16:26
  • 4833

Spring框架学习(8):通过工厂方法配置bean

通过工厂方法配置bean有两种方式:一是通过静态工厂方法来配置,二是通过工厂实例方法来配置 一、静态工厂方法配置bean 写一个静态工厂方法的类: package factory; impor...

Java 8之方法引用(Method References)

Java 8中方法也是一种对象,可以By名字来引用。不过方法引用的唯一用途是支持Lambda的简写,使用方法名称来表示Lambda。不能通过方法引用来或者诸如方法签名的相关信息。方法引用的分类方法引用...

Java8 方法引用-Method References

前言怎样更好的引入Java8中的方法引用呢? 我们首先看一下一个简单的例子: Consumer con=(str)->System.out.println(str); ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2. Spring 4.2.3前瞻-对java8默认方法(default method)定义Bean的支持
举报原因:
原因补充:

(最多只允许输入30个字)