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

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

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

(0)
上一篇 2022年8月3日 下午4:36
下一篇 2022年8月3日 下午4:36


相关推荐

  • apache的安装教程详解_怎么安装apache

    apache的安装教程详解_怎么安装apache文章目录1、下载Apache2、修改httpd.conf文件3、启动Apache服务1、下载Apache点击:[https://www.apachehaus.com/cgi-bin/download.plx]点击图中红圈的版本下载:下载后,解压文件,把如图这两个文件拿出来放到你的Apache目录下例如:我的放到D盘,如图:2、修改httpd.conf文件在文件夹中查…

    2026年2月7日
    3
  • buck降压电路解析

    buck降压电路解析1.拓扑模型如下2.需要的元器件如下:元器件:开关管T、续流二极管D、储能电感L、滤波电容C、负载电阻R输入电压:Ui输出电压:Uo特性:Ui>Uo3.三种工作模式BCM、CCM、DCM3.1CCM–电感电流连续导通模式3.2当Imin减小到零时,电路由CCM模式进入BCM—电感电流临界导通模式3.3DCM—电感电流非连续/断续导通模式4.举例子LM2576/2596下图中的R1/R2阻值一般是k级别电阻,100k左右,目的是减少功耗5.常见的厂商TI、MP

    2022年6月20日
    69
  • D2 日报 2019年2月27日

    D2 日报 2019年2月27日

    2021年7月1日
    95
  • JVM调优常用命令及工具

    JVM调优常用命令及工具目录1、jstat命令1.1、查看class加载统计1.2、查看编译统计1.3、垃圾回收统计2、jmap命令2.1、查看内存使用情况jmap-heap2629682.2、查看内存中对象数量及大小2.3、将内存使用情况dump到文件中2.4、通过jhat对dump文件进行分析2.5、通过MAT工具对dump文件进行分析3、jstack命令4、jdk自带jvisualvm工具1、jstat命令jstat命令可以查看堆内存各部分的使用量,以及加载类的数

    2022年5月15日
    62
  • 生成initramfs_windows引导文件

    生成initramfs_windows引导文件在制作Initramfs文件系统之前,我先简单介绍下linux各文件系统。linux支持多种文件系统类型,包括ext2,ext3,vfat,jffs,ramfs,nfs等,为了对各类文件系统进行统一管理,linux引入了虚拟文件系统vfs(virtualfilesystem),为各类文件系统提供一个统一的应用编程接口。文件系统类型主要有如下:根据存储设备的硬件特性,…

    2022年8月11日
    10
  • PHP 10个常见面试题及答案

    PHP 10个常见面试题及答案1 PHP 的基础知识点 PHP 中类的继承属于单继承 一个子类只能继承一个父类 可见性为 publicprotec 的属性和方法可以被继承 继承的方法或属性可以被重写 可见性越来越大 PHP 中的变量名区分大小写 但类名 函数名不区分大小写 2 error reporting 函数的作用 error reporting 函数的作用是临时设置脚本执行过程中的错

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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