javaee框架整合开发入门到实战源码_java底层框架

javaee框架整合开发入门到实战源码_java底层框架kunJkunJ框架,是基于HK2框架的一个自实现注入框架,功能比较简单,重在探索依赖注入的实现原理。实现细节1.自定义3个注解,Access,Inject,Service2.在Servi

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

kunJ

kunJ框架,是基于HK2框架的一个自实现注入框架,功能比较简单,重在探索依赖注入的实现原理。

实现细节

  1. 自定义3个注解,Access,Inject,Service
  2. 在Service中实现对Inject对象的注入(Inject对象必须是Service且有默认构造器)
  3. 在Service中自动调用标注了Access的方法
  4. 注入实现类ClassAnalyzer中reInject,实现动态自定义注入(覆盖自动注入)

整体架构

javaee框架整合开发入门到实战源码_java底层框架

示例

//Sevice
@Service
public class ClassOfArt implements Class{

    @Override
    public void hi() {
        System.out.println("this is class of art.");
    }
}
//Sevice
@Service
public class College {
    @Inject
    private Department art;

    @Access
    public void run() {
        System.out.println("this is college of art.");
        art.hi();
    }
}
//Sevice
@Service
public class DepartmentOfArt implements Department{

    @Inject
    private Class artClass;
    
    @Override
    public void hi() {
        System.out.println("this is department of Art.");
        artClass.hi();
    }
}

//College需要注入Department,Department需要注入Class
//注入
try {
            ClassAnalyzer.inject();
        } catch (Exception e) {
            e.printStackTrace();
        }

结果:
javaee框架整合开发入门到实战源码_java底层框架

//自定义注入
	Class art = new Class() {
			@Override
			public void hi() {
				System.out.println("hello world");
			}
		};
		try {
			ClassAnalyzer.reInject(Class.class, art);
		} catch (Exception e) {
			e.printStackTrace();
		}

运行结果:
javaee框架整合开发入门到实战源码_java底层框架

github地址

github.com/lknny/kunj

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168179.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • PAD图主要特点「建议收藏」

    PAD图主要特点「建议收藏」PAD图主要特点1.PAD图表示的程序结构的执行顺序是自最左边的竖线的上端开始,自上而下,自左向右。2.用PAD图表示的程序片段结构清晰,层次分明3.支持自顶向下、逐步求精的设计方法4.只能用于结构化的程序设计5.PAD图不仅可以表示程序逻辑,还能表示数据结构…

  • 亚马逊云服务器aws配置ssl https证书「建议收藏」

    亚马逊云服务器aws配置ssl https证书

  • Unity3D Invoke 方法的调用

    Unity3D Invoke 方法的调用Invoke()方法是Unity3D的一种委托机制如:Invoke(“SendMsg”,5); 它的意思是:5秒之后调用SendMsg()方法;使用Invoke()方法需要注意3点:1:它应该在脚本的生命周期里的(Start、Update、OnGUI、FixedUpdate、LateUpdate)中被调用;2:Invoke();不能接受含有参数的方

  • 关于linux文件系统软连接_centos7删除目录命令

    关于linux文件系统软连接_centos7删除目录命令前言经常使用centos系统的同学都知道,在全局安装命令指令时,即使是执行了npminstall-g但是安装之后的命令仍然说找不到那么我们改如何操作呢?软连接简介centos下的ln命令就相当于window下的建立快捷方式,链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。软链接文件只是其源文件的一个标记,当删除了源…

  • intellij idea和eclipse比较_eclipse与idea的区别

    intellij idea和eclipse比较_eclipse与idea的区别             【总结】IDEA和Eclipse的比较    两个开发编辑器,可以说Eclispe之前占据了上风,但近几年来IDEA的使用率猛扑直追,现在IDEA有着反超的气势,到底两者之间有什么相似之处,又有什么区别呢?我们来看一下~~。   一、快捷键比较快捷键 Eclipse IDEA 查找类名 CTRL+…

  • Kafka集群原理

    Kafka集群原理Kafka是一个分布式的、可水平扩展的、基于发布/订阅模式的、支持容错的消息系统。一、集群成员Kafka使用Zookeeper来维护集群成员的信息。每个broker都有一个唯一标识符,这个标识符可以在配置文件里指定,也可以自动生成。在broker启动的时候,它通过创建临时节点把自己的ID注册到Zookeeper。Kafka组件订阅Zookeeper的/broker/ids路径,当有broker加入集群或退出集群时,这些组件就可以获得通知。ZooKeeper两.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号