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


相关推荐

  • 微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享

    微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享今天带来的是塔防游戏制作攻略!点击这里来下载工程文件,点击这里可以下载工程中所用的素材哦~预览状态时敌人会从四个生成点随机生成,并且会自动寻路绕过黑色墙体走向红色终点。点击黑色墙体可以创建炮塔,炮塔会自动攻击敌人。废话不多说,快打开唤境燥起来~!1.新建项目首先,打开唤境,点击欢迎页左上角的新建项目按钮。在弹出的项目设置中,选择窗口尺寸为800*600。命名为“塔防…

    2022年5月10日
    160
  • ICMP协议报文_三菱mc协议报文格式

    ICMP协议报文_三菱mc协议报文格式ICMP协议及报文格式

    2025年6月12日
    3
  • 安装 arm nginx aarch64[通俗易懂]

    安装 arm nginx aarch64[通俗易懂]网上搜了一大堆通过编译方式安装nginx的方法其实nginx提供了aarch64版本的nginxhttp://nginx.org/en/linux_packages.html2中选择,使用yum安装软件的选择centos的方法,apt安装软件的选择debain或者ubuntu的方法添加软件源地址,然后就可以快乐的玩耍了不管是yum还是apt安装后nginx都不会自己启动需要systemctlstartnginx手动启动nginx服务

    2022年10月16日
    3
  • WebStorm使用 webstorm快捷键

    WebStorm使用 webstorm快捷键WebStormWebStorm是JetBrains推出的一款商业的 JavaScript 开发工具任何一个编辑器都需要保存(ctrl+s),这是所有win平台上编辑类软件的特点,但是webstorm编辑文件右上角是没有那个熟悉的*的。好处:省去了ctrl+s之后,在结合Firefox的vim,基本不动鼠标就可以看到结果页面了。 坏处:没有以前的*

    2022年6月23日
    39
  • ArcGIS教程:路径分析(一)

    ArcGIS教程:路径分析(一)求解路径分析表示根据要求解的阻抗查找最快、最短甚至是最优的路径。如果阻抗是时间,则最佳路线即为最快路线。如果阻抗是具有实时或历史流量的时间属性,则最佳路径是对指定日期和时间来说最快的路径。

    2022年8月24日
    13
  • 激活函数-Sigmoid, Tanh及ReLU

    什么是激活函数在神经网络中,我们会对所有的输入进行加权求和,之后我们会在对结果施加一个函数,这个函数就是我们所说的激活函数。如下图所示。为什么使用激活函数我们使用激活函数并不是真的激活什么,这只是一个抽象概念,使用激活函数时为了让中间输出多样化,能够处理更复杂的问题。如果不适用结果函数的话,每一层最后输出的都是上一层输入的线性函数,不管加多少层神经网络,我们最后的输出也只…

    2022年4月3日
    68

发表回复

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

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