博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring5.0的第一次尝鲜
阅读量:6604 次
发布时间:2019-06-24

本文共 2058 字,大约阅读时间需要 6 分钟。

对于这次尝鲜,说白了和Spring5.0的新特性基本没有多大的关系,如果说您不小心进来了,却发发现文章的内容和标题似乎不太匹配,那么我将是非常的抱歉,因为这浪费了您宝贵的时间。但是我还是要说:因为这确实是Spring5.0中的一个demo.而我在这里写下这个Demo的原因是这个Demo全部是注解的配置,因为我的习惯还停留在XML的阶段。 

好了,让我们引入context包吧,这里使用maven配置:

org.springframework
spring-context
5.0.0.RELEASE

这个Demo的实现思路是这样的,首先我们定义一个接口,定义一个类,该类要调用该接口中的方法,但是又没有实现这个接口,此时我们可以考虑下怎么做呢?很简单的,在不涉及其他类的情况下貌似只能在该类中的该方法中使用匿名内部类的方式的完成,但是这和我们之前的说的是一致的,我们要解耦,就要注入。这个Demo说的就是注入。在该Demo中,这个类将该接口私有化并且最终化,以便是有构造器注入。然后在方法中直接调用即可。在配置类中使用匿名内部类的方式创建这个接口的bean。在main方法中首先加载配置类,获取上下文,然后用上下文调用方法所在的类,进而调用方法。其实真正的方法的执行体应该是接口的匿名实现类的方法。

package hello;public interface MessageService {    String getMessage();}package hello;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;@Componentpublic class MessagePrinter {    /**     * 定义私有的,最终的成员变量,并且使用构造器进行初始化     */    final private MessageService service;    @Autowired    public MessagePrinter(MessageService service) {        this.service = service;    }    public void printMessage(){        System.out.println(service.getMessage());    }}package hello;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configuration@ComponentScanpublic class Application {    @Bean    MessageService mockMessageService(){        return new MessageService() {            public String getMessage() {                return "Hello World!";            }        };    }    public static void main(String[] args) {        ApplicationContext context = new AnnotationConfigApplicationContext(Application.class);        MessagePrinter printer = context.getBean(MessagePrinter.class);        printer.printMessage();//Hello World!    }}

 

转载于:https://www.cnblogs.com/gosaint/p/8242779.html

你可能感兴趣的文章
什么是枚举?有什么作用?有什么好处?
查看>>
hdu 1247
查看>>
MVC 和 Web Form
查看>>
2016阿里巴巴73款开源产品全向图
查看>>
[转]平面方程
查看>>
20165105 第八周学习总结
查看>>
Sublime Enter Key Setting自动缩进设置
查看>>
maven在win7系统上的安装
查看>>
实例讲解教你读懂路由表
查看>>
Glibc 和 uClibc
查看>>
uboot的常用命令及用法
查看>>
socketpair和pipe的区别
查看>>
要做的题目-要用到hadoop资源
查看>>
netstat命令介绍-要用熟
查看>>
Effective_STL 学习笔记(十二) 对STL线程安全性的期待现实一些
查看>>
php输出杨辉三角
查看>>
view 的frame 和bounds的区别
查看>>
Angular学习知识点记录
查看>>
VMware 虚拟机的虚拟磁盘编程知识点扫盲之二
查看>>
Have a Good Attitude 良好的态度
查看>>