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)


相关推荐

  • 《Unity开发实战》——3.5节创建透明纹理贴图

    《Unity开发实战》——3.5节创建透明纹理贴图

  • 内连接,左右连接和全连接的区别是什么_sql左连接和右连接区别

    内连接,左右连接和全连接的区别是什么_sql左连接和右连接区别举例说明假设您有两个表,每个表只有一个列,表数据如下 AB–13243546 注意,(1,2)是A表唯一的,(3,4)是公共的,并且(5,6)是B表独有的 内连接 内连接是A表的所有行交上B表的所有行得出的结果集 select*fromaINNERJOINbona.a=b.b;se…

  • 太原java技术培训_面试官说java基础不行

    太原java技术培训_面试官说java基础不行二、六大性能调优技术(JVM调优+网络调优+数据库调优+LINUX内核调优+中间件底层探索+容器环境调优)手绘板(脑图)1、JVM调优JVM调优必备理论知识-GcCOLLECTOR-三色标记垃圾回收算法串讲JVM常见参数总结JVM调优实战JVM(HotSpot)核心源码解读JVM核心模块(GC算法)手写实战2、网络调优TCP内核参数JAVAAPI参数IO模型TRADEOFF资源隔离优化网卡、CPU配置调优网络安全的加密算法与数字签名3、数据库调优Mysql性能监

  • pcl点云合并_pcl点云重建

    pcl点云合并_pcl点云重建本节记录下点云聚类方法1.欧式聚类分割方法//为提取点云时使用的搜素对象利用输入点云cloud_filtered创建Kd树对象tree。pcl::search::KdTree::Ptrtree(newpcl::search::KdTree);tree->setInputCloud(cloud_filtered);//创建点云索引向量,用于存储实际的点云信息首先创…

    2022年10月21日
  • Vue双向绑定原理(4改)

    Vue双向绑定原理(4改)Vue双向绑定的原理 双向数据绑定是通过数据劫持、结合、发布订阅,的方式来实现的,也就是说数据和视图同步,数据发生变化,视图跟着变化,视图变化,数据也随之发生改变; 使用watch来连接数据与视图,当数据发生变化时,触发通知所有该数据的对象进行更新。这!就是vue的双向绑定原理,你学会了吗?…

    2022年10月18日
  • 用Protel 99 SE学习原理图的设计及pcb的绘制

    用Protel 99 SE学习原理图的设计及pcb的绘制学习Protel99SE的大致过程:原理图文件(*.Sch)–>网络表文件(*.NET)–>*.PCB 网络表文件:记录封装格式。 (封装是指元件的长宽、大小、位置。封装就是一种标准,用来规定元件制造出的实际大小) Pcb文件:它就是印制电路板的文件 protel软件:https://download.csdn….

发表回复

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

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