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

本文共 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

你可能感兴趣的文章
奇妙的 CSS shapes(CSS图形) 【css 图形,绘图,CSS 几何图形)】
查看>>
JavaScript利用Date实现简单的倒计时实例
查看>>
静态代理模式
查看>>
NuGet包断线续传下载
查看>>
8 Reasons why SharePoint is Bad for Your Business 8个理由告诉你,为什么SharePoint对你的业务有害...
查看>>
Activiti解析.bpmn文件获得User Task节点的CandidateUsers特性的值
查看>>
树莓派进阶之路 (016) - 通过595驱动4位LED显示系统时间
查看>>
Python网络爬虫(一):初步认识网络爬虫
查看>>
assets raw 资源 AssetManager
查看>>
[基础规范]JavaBeans规范
查看>>
VMware80端口映射
查看>>
同一个tomcat多个项目共享session,一个tomcat两个项目共享sessionId
查看>>
centos安装man中文手册
查看>>
网络通信与面相对象
查看>>
获取图片的真实宽高
查看>>
基于VHDL利用PS2键盘控制的电子密码锁设计
查看>>
深入分析JavaWeb Item22 -- 国际化(i18n)
查看>>
SQL Server -- 随笔
查看>>
Java Annotation 应用 -- 导出Excel表格
查看>>
git使用教程1-本地代码上传到github
查看>>