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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jquery中的ajax写法_jquery中get和post提交的区别

    jquery中的ajax写法_jquery中get和post提交的区别习惯了用单引号. $(function(){ $(‘#outputuserInfo’).keyup(function(){ varorderid=$(‘#outputuserInfo’).val(); $.ajax({ url:’validateUserInfo’, async:false,//false不打引号 type:’POST

    2022年9月29日
  • IntelliJ IDEA 如何创建一个普通的 Java 项目,及创建 Java 文件并运行

    首先,确保IDEA软件正确安装完成,Java开发工具包JDK安装完成。IntelliJIDEA下载地址:https://www.jetbrains.com/idea/download/#section=windowsJDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.htmlIDEA…

    2022年4月13日
  • tcp粘包是怎么产生的_tcp报文格式

    tcp粘包是怎么产生的_tcp报文格式tcp粘包是怎么产生的?1、什么是tcp粘包?发送方发送的多个数据包,到接收方缓冲区首尾相连,粘成一包,被接收。2、原因TCP协议默认使用Nagle算法可能会把多个数据包一次发送到接收方。应用程读取缓存中的数据包的速度小于接收数据包的速度,缓存中的多个数据包会被应用程序当成一个包一次读取。3、处理方法发送方使用TCP_NODELAY选项来…

    2022年8月11日
  • dategrip激活码[最新免费获取]

    (dategrip激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~8…

    2022年3月27日
  • js定时器与延时器_JS做定时器倒计时

    js定时器与延时器_JS做定时器倒计时定时器创建定时器window.setInterval(方法类型,间隔时间(1000=1秒))vartimer=window.setInterval(func,2000);vari=0functionfunc(){console.log(“你好”,i)i+=1}清除定时器window.clearInterval(定时器名)functionting(){//清除定时器window.clearInterval(timer…

    2022年10月21日
  • 电平转换电路_光耦电平转换电路图

    电平转换电路_光耦电平转换电路图一、概述​在硬件设计中有时候经常会遇到,主芯片引脚使用的1.8V、3.3V、5V等,连接外部接口芯片使用的3.3V、5V等,由于电平不匹配就必须进行电平转换。两个设备如果供电电压不一样,比如一个是3.3V,另一个是5V,那么在电平不匹配的情况下工作,会造成信号传输出错;如果二者电压相差较大,严重的可能会损坏芯片。二、设计1、晶体管构成的电平转换方法​

    2022年8月10日

发表回复

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

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